はじめに
初投稿です。
AWS SAAに合格するためにUdemyでAWSの各サービスについて学習し、各サービスの特徴を要約してみました。
今回はIAMについての要約になります。
IAMとは
- IAMの主要トピックはユーザ、グループ、ポリシー、ロールの4つ
ルートユーザー
- AWSアカウント作成時に作られるIDアカウント
- 全てのAWSサービスとリソースを使用できる権限を有する
- 日常的なタスクはルートユーザーを使用しないことが強く推奨される
- (パワーユーザはIAMユーザやグループの管理以外の全てのAWSサービスにフルアクセス権限を有する物で別のもの)
- ルートユーザにしかできない操作権限が存在する
- AWSルートアカウントのメールアドレスやパスワードの変更
- IAMユーザの課金情報にアクセスに関するactivate/deactivate
- 他のAWSアカウントへのRoute53のドメイン登録の移行
- CloudFrontのキーペアの作成
- AWSサービス(サポートなど)のキャンセル
- アカウントの停止
- コンソリデイテッドビリングの設定
- 脆弱性診断フォームの提出
- 逆引きDNS申請
IAMユーザー
- IAMポリシー内でAWSサービスを利用するユーザ。基本操作はIAMユーザで実施する
- 一アカウントで5000ユーザーまで作成可能
- 設計内容
- ユーザー名
- パス(オプション)
- 所属グループ(最大10グループまで設定可能)
- パーミッション(AWSサービスへのアクセス制限)
IAMグループ
- 一アカウントで100グループまで作成可能
- 設計内容
- グループ名
- パス(オプション)
- パーミッション(グループに設定したパーミッションはIAMユーザーに付与したパーミッションと同時に評価する)
IAMロール
-
AWSリソースに対してアクセス権限をロールとして付与できる
-
ルートユーザーのアクセスキーを極力使わずに個々のIAMユーザを作る
-
ルートユーザや強い権限をもつIAMユーザにはMFAを有効化し、通常利用しないようにする
IAMポリシー
- IAMポリシーを作成してユーザーなどへのアクセス権限を付与
- 管理ポリシー
- AWS管理ポリシー → AWSが作成及管理する管理ポリシー
- カスタム管理ポリシー → AWSアカウントで作成・管理する管理ポリシー。同じポリシーを複数のIAMエンティティにアタッチできる
- インラインポリシーは自身で作成、管理する管理ポリシー
- 一つのプリンシパルエンティティ(ユーザ、グループ、ロール)に埋め込まれた固有ポリシーで、プリンシパルエンティティにアタッチすることができる
- JSON形式
- ユーザーベースとリソースベースのポリシー適用がある
- AWSリソースに対してアクセス権限をロールとして付与できる
ポリシードキュメント
PARKが大切
-
Principal ... AWSリソースへのアクセスが許可/拒否されるIAMエンティティを指定する
-
Action
- 許可/拒否される特定のアクションを指定する
- AWSサービスで行うことができるタスクを記述する独自のアクションセットを記述
-
Resource
- ステートメントで取り扱う一連のオブジェクトを指定する
-
Condition
- ポリシーが有効になるタイミングの条件を指定する
-
ポリシーを作成するためのジェネレータがあるから使うと良い
ルートユーザー
- MFA認証とか、課金情報など大事な作業以外では使わないようにする
- CloudFrontのキーペアの作成
IAMユーザー
IAMグループ
IAMポリシー
- ユーザーベースのポリシー適用
- リソースベースのポリシー適用
が存在する - IAMロールはサービスにアタッチできる
- アクセス権限の一時付与もできる
IAM設計
ベストプラクティスにそったIAM設計をすることが望ましい
IAMユーザ or IAMグループどちらを設定するのが良いか
- 少数利用がずっと継続する場合をのぞいて、少数利用を含めて最初からIAMグループで設定する方が良い
- 組織別または個人単位にAWS利用者とその役割別の利用範囲を整理してグループ設計を実施する
IAMグループへのポリシー適用
Q.それぞれにどのような権限を付与するか
- IT管理者
- フルアクセスの管理者権限の付与
- 運用管理者
- 運用ツール全般と開発環境へのアクセスも付与し、DevOpsに参加できるように
- アプリ開発者
- 担当しているアプリの開発範囲でのみアクセス権限を付与する