元ネタ
AWSのWell-Architected Frameworkを改めて整理。せっかくなんでハンズオン形式で学べるAWS Well-Architected Labsをやってみよう!ということで、備忘も兼ねて実践&記録をしてみました。
Workshop Studio
Discover and participate in AWS workshops and GameDays
前提条件
- AWSアカウントがあること
- IAM でリソースを作成する権限。
ハンズオン開始
0. 概要
このハンズオンでは、AWS CloudFormationを使用して、IAMグループとロールを自動的に作成する方法を実践します。
自分
やっている処理は大したことないけど、設定されるグループとロールの説明が全くない。。。
仕方ないので補足します。。。
設定されるロール(オプションのアカウントIDが設定されない場合のみ)
ここでプリフィックスは「Baseline」が前提。
Baseline-AccountWideReadOnly
ReadOnlyAccessが設定されたロール
Baseline-CloudFormation
CloudFormationの作成・更新ができるロール
Baseline-IdentityAdmin
IAM管理ができるロール。(ReadOnlyAccessも付加)
Baseline-PrivilegedAdmin
AdministratorAccessが設定されたロール
Baseline-RestrictedAdmin
CloudFormation管理(スタック作成したリージョンに制限)ができるロール。(ReadOnlyAccessも付加)
AWSCloudFormationStackSetExecutionRole
AdministratorAccessが設定されたロール。(MFA強制はされない)
1. AWS CloudFormationスタックの作成
予め用意したyamlファイルを使って、CloudFormationでスタックを作成します。
CloudFormationスタックの作成手順
- 希望のリージョンを選択し、CloudFormationコンソールを開く。
- 「スタック」の右上にある「▼スタックの作成」から「新しいリソースを使用(標準)」を選択する。
- 「前提条件」では「テンプレートの準備完了」を選択し、テンプレートの指定では「テンプレートソース」として「Amazon S3 URL」、「Amazon S3 URL」に以下のURLを貼り付けて、「次へ」を選択する。
https://ws-assets-prod-iad-r-cmh-8d6e9c21a4dec77d.s3.us-east-2.amazonaws.com/af6cf1bc-42ca-4e08-a9c1-f8a7f20324db/baseline-iam.yaml
- 「スタック名」に「baseline-iam」を入力する。
- 「オプション」は以下を参考に入力する。
項目名 | 説明 | 入力例 |
---|---|---|
AllowRegion | アクセスを制限する単一のリージョン。希望のリージョンを入力します。 | ap-southeast-1 |
BaselineExportName | 作成されたリソースのリソース名とともに使用される CloudFormation エクスポート名のプレフィックス | Baseline |
BaselineNamePrefix | このスタックによって作成されたロール、グループ、およびポリシーのプレフィックス。 | Baseline |
IdentityManagementAccount | 一元化された IAM ユーザーを含み、すべてのロールを引き受けると信頼されている AccountId、またはクロスアカウントの信頼がない場合は空白。 信頼できるアカウントは適切に保護される必要があることに注意してください。 | 123456789012 |
OrganizationsRootAccount | 組織の役割を引き受けると信頼されている AccountId、またはクロスアカウントの信頼がない場合は空白。 信頼できるアカウントは適切に保護される必要があることに注意してください。 | 123456789012 |
ToolingManagementAccount | ReadOnly ロールと StackSet ロールを引き受けると信頼されている AccountId、またはクロスアカウントの信頼がない場合は空白。 信頼できるアカウントは適切に保護される必要があることに注意してください。 | 123456789012 |
- 「次へ」を選択する。
- 「スタックオプションの設定」ではデフォルトのまま。「次へ」を選択する。
- 「レビュー」にて最終確認する。内容がOKであれば「AWS CloudFormation によって IAM リソースがカスタム名で作成される場合があることを承認します。」のチェックボックスをオンにして、「送信」を選択する。
- スタックのステータスは「CREATE_IN_PROGRESS」となっており、数分後には「CREATE_COMPLETE」に変わる。
2. Webコンソールで制限付き管理者ロールを使用する
ロールを「Baseline-RestrictedAdmin」に切り替え、制限を確認する。
ロールの切り替え手順
- ロールを開き、「Baseline-RestrictedAdmin」を検索し、詳細を開く。
- 「概要」の右にある「コンソールでロールを切り替えるためのリンク」のリンクをコピーする。
- ブラウザに2.のリンクを貼り付け、アクセスする。
- 「ロールの切り替え」にて、「アカウント」にアカウントID、「ロール」に「Baseline-RestrictedAdmin」が入力されていることを確認し、必要に応じて「表示名」「色」を変更する。
- 「ロールの切り替え」を選択する。
- 右上のナビゲーションバーの名前が4.で入力した表示名になっていることを確認する。
- CloudFormation以外は読み取り権限のみのため、IAMでユーザーが作成できない、などを確認する。
- 右上のナビゲーションバーの名前より「スイッチバック」で元のユーザーに戻る。