IAMとは
AWSを使っていると避けられないのがIAM
です。
聞き慣れませんが、Identify and Access Management
の略で、AWSへのアクセス件をコントロールするものです。
知っておかないと、乗っ取られた時に勝手に大量にインスタンスを立ち上げられて請求されるなどの危険性があるのでしっかりと知っておく必要があります。
まず、AWSには2つのアカウントがあります。
- AWSアカウント
- ルートアカウントで、最強のアカウント
- 全てのサービスを操作(起動/削除/変更etc...)出来る
- 取扱に注意すること!!
- 普段からの利用は極力避けて、必ずMFAを有効化する事
- IAMアカウント
- マネジメントコンソール上で操作する時、APIで操作する時に使うアカウント
- IMAアカウントは、それ毎に細かくどのサービスをどの程度設定出来るかを定義することが出来る
- このアカウントでも、 権限を強くしたり、請求処理が出来るようなものに関しては、AWSアカウント同様にMFAを有効にすること
MFAとは
- 多要素認証(Multi-Factor Authentication)の事
- ログイン時にはID/PWでログインするが、さらにMFAを有効にすることで、
IAMポリシーとは
IAMポリシーには、3つのルールにもとづいて各サービスを使う上で機能を設定します。
- Action - どのサービス
- Resource - どういう機能の範囲を(起動/削除/変更etc...)
- Effect - 許可 or 拒否
このポリシーも下記の2種類があります。
- AWS Managed Policies
- AWSが最初から設定しているポリシー
- Customer Managed Policies
- ユーザが独自に作成したポリシー
IAMロール
一時的にAWSリソースへアクセス権限を付与する場合に利用
- AWSリソースへの権限付与
- クロスアカウントアクセス
- IDフェデレーション
- Wed ID フェデレーション
MFAを有効化する
サービス一覧から、IAM
を選択すると、下記のように「ルートアカウントのMFAを有効化」という部分が出てますので、こちらからMFAの管理
をクリック
実際にMFAを使えるアプリケーション(私はGoogle Authenticatorを使ってます)から、QRコードを読み取って、表示されるコードを入力すればMFAが有効になります。
実際にIAMを作ってみる
3stepで行きます。
- Groupの作成
- Role作成
- User作成
1. Groupの作成
- サービス一覧から、IAMを選択
- 左メニューから「グループ」を選択
- 「新しいグループの作成」を選択
- 名前を入力(
admin
等)- フィルターで「AWS管理ポリシー」を選択すれば、上記で説明した
AWS Managed Policies
のポリシー一覧が選択出来るようになります - 「ジョブ機能」には、請求やサポートユーザ等強めのポリシーが設定出来ます
- フィルターで「AWS管理ポリシー」を選択すれば、上記で説明した
- 確認画面で問題なければ「グループの作成」で作成完了です
2. Roleの作成
試しに、EC2に対して、RDSの読み込み
/ S3の読み込み
が出来るロールを作って見ます。
- 左メニューから「ロール」を選択
- EC2を選択
-
AmazonRDSReadOnlyAccess
とAmazonS3ReadOnlyAccess
を選択して作成
- 完成したポリシーを見てみるとこんな感じになっております
3. Userの作成
- 左メニューから「ユーザ」を選択
- 「ユーザを追加」を選択
- 今回はマネジメントコンソールからアクセスする用のアカウントを作ってみます
- また、グループには先程作ったグループに紐付けておきます
IAMユーザでのログイン方法
-
- 作成が完了すると、一度だけパスワードが表示される画面が出るのでメモしておきます。
-
- 作成後、ユーザ > 「認証情報」から
コンソールログインのリンク
が記載されてるので、コピーしておく
- 作成後、ユーザ > 「認証情報」から
-
- 初回ログイン時には、1の時にメモしたパスワードでログインする
-
- ログインが成功すると、パスワードの変更を指示されるので変更しておく
-
- もし強めのポリシーを割り当ててる場合は、必ずMAFを有効化しておきましょう