AWS
S3
クロスアカウント
バケットポリシー
他アカウント

【AWS:S3】他アカウントIAMロールからのアクセス許可

アカウントAのIAMロールからアカウントBのS3へアクセス

EC2等から他AWSアカウントの所有するS3に対しファイルの配置や取得等のアクセスを行いたい場合は
以下の手順でアクセスを許可したいEC2にアタッチしているIAMロールとS3のバケットポリシーに許可を与えます。
1. アカウントAのIAMロールにアタッチされているIAMポリシーへのS3アクセス許可
2. アカウントBのS3バケットポリシーにアカウントAのIAMロールからのアクセス許可

1. アカウントAのIAMロールにアタッチされているIAMポリシーへのS3アクセス許可

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::[アカウントBのS3バケット名]"
            ]
        }
    ]
}

2. アカウントBのS3バケットポリシーにアカウントAのIAMロールからのアクセス許可

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Example",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::[アカウントAのアカウント]:role/[アカウントAのIAMロール名]"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::[アカウントBのS3バケット名]/*",
                "arn:aws:s3:::[アカウントBのS3バケット名]"
            ]
        }
    ]
}