LoginSignup
0

posted at

AWSのクロスアカウントアクセスをCLIからやってみた

はじめに

  • AWSで他アカウントのリソースにアクセスする必要があったため、方法を以下に整理しました。

前提

  • アカウントAからアカウントBのリソースにアクセスする

準備

アカウントBでの作業

  • アカウントBでIAMロールを作成する
    • 信頼関係でアカウントAのIDを指定する
    • 必要なリソースの権限が記述されたIAMポリシーをロールに付与する
      • 今回は特定のS3バケットへのアクセス権限を記述する

アカウントAでの作業

  • IAMポリシーの作成
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "sts:AssumeRole"
            ],
            "Effect": "Allow",
            "Resource": [ "arn:aws:iam::アカウントB:role/アカウントBで作成したIAMロール名" ]
        }
    ]
}
  • IAMユーザを作成してIAMポリシーをアタッチする
  • アクセスキー、シークレットアクセスキーを作成する

ローカルPCでの作業

  • アカウントAのアクセスキー、シークレットアクセスキーを登録する
$ vi .aws/credentials
[accountA]
aws_access_key_id = <アクセスキー>
aws_secret_access_key = <シークレットアクセスキー>
  • AssumeRoleする先のIAMロールのARNと元になるプロファイルを指定する
$ vi .aws/config 
[profile accountB]
role_arn = arn:aws:iam::<アカウントB>:role/<アカウントBで作成したIAMロール>
source_profile = accountA

検証

以下コマンド実行することで、アカウントAからアカウントBのリソースにアクセスできる

C:\>aws --profile accountB s3 ls <アカウントBのS3バケット名>

参考

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
What you can do with signing up
0