LoginSignup
3
3

More than 5 years have passed since last update.

マスターアカウントのIAMユーザーにメンバーアカウントの参照権限を付与する

Last updated at Posted at 2017-06-19

目的

  • AWS Organizationsで各メンバーアカウントの権限をマスターアカウントに移譲し、マスターアカウントのIAMユーザーから参照・制御できるようにする。後付けでJoinさせた場合にはRoleを作らないといけないっぽい。
  • クロスアカウントを使っているだけなんだけど、AWS Organizationsから対応方法を探すと時間かかるので、まとめてみた。

メンバーアカウントでのコンソール上でのRoleの追加手順

  • IAM->ロールに行きます。

IAM_Role_New.png

  • 「新しいロールの作成」を押下
  • 「クロスアカウントアクセスのロール」を選択

IAM_Role_Type.png

  • アカウントIDにマスターアカウントのIDを入力する。

IAM_Role_CrossAccount.png

  • アタッチするポリシーを選択します。
  • 今回はViewOnlyAccessにします。

IAM_Role_Policy.png

  • Role名などを入力します。
  • 私は「OrganizationAccountReadOnlyRole」と入力しました。
  • OrganizationsのコンソールからメンバーアカウントをCreateした場合には「OrganizationAccountAccessRole」が作られているようです。

IAM_Role.png

AWS CLIでの動作確認

  • マスターアカウントのIAMユーザーで動作確認します。
  • xxxxxxxxxxはメンバーアカウントのIDです。
  • プロファイルで切り分けている方は「--profile」オプションを使ってください。
aws sts assume-role --role-arn arn:aws:iam::xxxxxxxxxx:role/OrganizationAccountReadOnlyRole --role-session-name "RoleSession"
  • 以下のような応答が戻ってきたらOKです。
{
    "AssumedRoleUser": {
        "AssumedRoleId": "xxxxxxxxxx:RoleSession",
        "Arn": "arn:aws:sts::xxxxxxxxxx:assumed-role/OrganizationAccountAccessRole/RoleSession"
    },
    "Credentials": {
        "SecretAccessKey": "xxxxxxxxxx",
        "SessionToken": xxxxxxxxxxxxxxxxxxxx",
        "Expiration": "2017-06-15T09:23:23Z",
        "AccessKeyId": "xxxxxxxxxx"
    }
}

主な用途

  • メンバーアカウントのCloudWatchの値などを一元的に収集する。
  • メンバーアカウントのリザーブドインスタンスの更新日時の収集

参考

AWS Organizationsを利用したアカウント作成の自動化
AWS OrganizationsをAWS CLIでひととおり操作してみた

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3