おっさん社内SEエンジニアの勉強ブログ

勉強記録のブログとなります。

SAA学習-IAM-IAMロールの権限移譲

今回のテーマ:IAMロールの権限移譲

IAMロールの信頼ポリシー

IAMロールの信頼ポリシーは、監査人などに一時的な権限を委譲する際に利用します。

実施する概要

1.アカウントAでアカウントBへ権限移譲用のロールを設定
2.アカウントBへ権限移譲用のロールをポリシーとして設定
3.2のポリシーをアカウントBのIAMユーザに設定
4.3のIAMユーザーを利用してIAMロールをスイッチしアカウントAにアクセス

実施概要の概略図

f:id:In-houseSE:20210219070514p:plain

実際の適用方法

1.アカウントAでアカウントBへ権限移譲用のロールを設定

  • IAM-アクセス管理-ロール-ロールの順にクリック

f:id:In-houseSE:20210219071251p:plain

  • 別のAWSアカウントを選択(クロスサイトアカウント=IAMロールを適用することが合致) し別のアカウントIDを入力後、次のステップ:アクセス権限をクリック

f:id:In-houseSE:20210219071618p:plain

  • ポリシーは前回作成したApplication-policyを活用し、次のステップ:タグをクリック

f:id:In-houseSE:20210219071921p:plain

  • タグは未設定で問題ないので次のステップ:確認をクリック

f:id:In-houseSE:20210219071954p:plain

ロール名は任意ですがこの場合アカウントBに対する意図を判断できるようにApplication_AcountBを指定します。 * ロール名入力後、ロールの作成をクリック

f:id:In-houseSE:20210219072147p:plain

2.アカウントBへ権限移譲用のロールをポリシーとして設定

  • 設定前事前確認

1.アカウントAで作成したIAMロールのロールARN (AWSリソース名) をコピーしておくこと
2.アカウントIDをコピーしておくこと

実施する場合、通常使用するブラウザと異なるブラウザを使用すると便利です。

  • 別のAWSアカウントへログインし、IAMからポリシーを作成するをクリック

f:id:In-houseSE:20210219073303p:plain

JSONを選択しコードから作成します。 * ひな形を活用すると便利なので管理ポリシーのインポートをクリック

f:id:In-houseSE:20210219073508p:plain

  • AdministratorAccessを選択しインポートをクリック

f:id:In-houseSE:20210219073556p:plain

  • ひな形をインポート後、コードを実装します。(こういうのCI/CDの一環につながります)
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect":"Allow",
            "Action":"sts:AssumeRole",
            "Resource":"arn:aws:iam::(AWSアカウントID):role/Application_AcountB"
        }    
    ]
}
  • 実装後、次のステップ:タグをクリック

f:id:In-houseSE:20210219074229p:plain

  • タグの指定は不要なので、次のステップ:確認をクリック

f:id:In-houseSE:20210219074307p:plain

  • ポリシー名を指定し、ポリシーを作成をクリック

3.2のポリシーをアカウントBのIAMユーザに設定

  • IAM-アクセス管理-ユーザー-ユーザーを追加をクリック

f:id:In-houseSE:20210219074619p:plain

  • コンソールパスワードやパスワードリセットのチェックを外して次のステップ:アクセス権限をクリック

f:id:In-houseSE:20210219074856p:plain

  • 既存ポリシーを直セスアタッチを選択後、先程作成したポリシーを選択し次のステップ:タグをクリック

f:id:In-houseSE:20210219075028p:plain

  • タグは特に指定しないため、次のステップ:確認をクリック

f:id:In-houseSE:20210219075112p:plain

  • 確認画面に来たら、内容を確認しユーザーの作成をクリック

f:id:In-houseSE:20210219075200p:plain

  • アカウントBのルートユーザからサインアウトを行います。

※ ユーザの作成が終わったらアカウントBのAWSアカウントIDを控えておくと楽です。

4.3のIAMユーザーを利用してIAMロールを選択し、アカウントBへ変更しIAMロールの権限移譲を有効化

  • アカウントBのサインインの画面に来たらIAMユーザを選択し、アカウントIDをクリック

f:id:In-houseSE:20210219075536p:plain

  • 先程作成したユーザーでAWSマネイジメントコンソールへログイン
  • ログイン後右上のIAMユーザーをクリックすると「ロールの切り替え」というメニューが増えます。

f:id:In-houseSE:20210219075923p:plain

  • ロールの切り替え画面に来たら、ロールの切り替えをクリック

f:id:In-houseSE:20210219080102p:plain

  • アクセスしたいアカウントAのAWSアカウントIDと該当ロールを入力し、ロールの切り替えをクリック

f:id:In-houseSE:20210219080204p:plain

  • 表示名がピンク色で設定しているので、この状態でOKとなります。

f:id:In-houseSE:20210219080519p:plain

この状態でAWSマネジメントコンソールで、アカウントAのマネジメントコンソールに切り替わり完了となります。

今回のテーマは以上です。