AssumeRoleを設定して クロスアカウントで別のS3を操作する

AWS, AWSCLI, IAM, S3

この記事は最終更新日から1年以上が経過しています。

参照方向はアカウントAのバケットに対してアカウントBがAssumeRoleを設定してアクセス・操作を行います。

image-20180905104603203.png

設定方法

環境A(参照先)

  1. ロールの作成(今回の場合はS3の操作)
    コンソールからIAM>ロール>ロールの作成を選択
    エンティティの種類:別のAWSアカウント
    アカウントID:参照元のAWSアカウントID(今回の場合はアカウントB)
    ※デフォルト設定しなければ、アカウントBのrootに権限が付与されます

    ロール名:(適宜)
          ex. RoleA_CrossAccount_Allow_Access_S3

  2. ポリシーを選択または作成
    ポリシー名:(適宜)
          ex. Policy_Allow_Access_S3

  3. ロールのARNをメモに保存
    arn:aws:iam::環境BアカウントID:role/RoleA_CrossAccount_Allow_Access_S3

環境B(参照元)

  1. ロールの作成(今回の場合はS3の操作)
    コンソールからIAM>ロール>ロールの作成を選択
    エンティティの種類:AWSサービス
    このロールを使用するサービス:S3

    ロール名:(適宜)
          ex. ROLE_Access_EnvB_S3

※rootでなく個別に権限を振る場合は
環境A(参照先)のRoleA_CrossAccount_Allow_Access_S3 IAMの信頼関係から操作

Windowsなどローカルから操作の場合
C:\Users\ユーザ名\.aws\configに以下を設定

Linux EC2からの操作の場合
$HOME\confに以下を設定

Bのクレデンシャルの状態で接続

この記事を書いた人

野々宮聡
野々宮聡レコチョクエンジニア(駆け出し)
今年の半ばからレコチョクエンジニアとして働き始めた野々宮 SATEOSHI(写真:スペルミス?)です。
斬新なサービスやその成り立ちに興味あります。
このサイトでは色々な興味あること、気になることや自分の経験・体験を書いていきたいと思います。

AWS, AWSCLI, IAM, S3