別の AWS アカウントの AWS Identity and Access Management (IAM) ユーザーが、自分の Amazon Simple Storage Service (Amazon S3) バケットへオブジェクトをアップロードできるようにしたいです。このクロスアカウントへのアクセスを許可するにはどうすれば良いですか?

以下の手順に従って、あるアカウント (アカウント A) の IAM ユーザーに、別のアカウント (アカウント B) の S3 バケットにオブジェクトをアップロードする権限を付与します。

1.    アカウント A から、ユーザーが IAM ユーザーに、アカウント B のバケットで S3:PutObject および S3:ListBucket アクションを実行できるようにするポリシーをアタッチすると、次のようになります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::bucketname",
                "arn:aws:s3:::bucketname/*"
            ]
        }
    ]
}

2.    アカウント A から、IAM ユーザーの Amazon リソースネーム (ARN) を取得します。

3.    アカウント B から、アカウント A の IAM ユーザーに、S3:PutObject および S3:ListBucket アクションをする権限を与えるバケットポリシーをアタッチすると、次のようになります。

重要: [プリンシパル] の値には、アカウント A に IAM ユーザーの ARN を必ず入力します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DelegateS3Access",
            "Effect": "Allow",
            "Principal": {"AWS": "arn:aws:iam::999999999999:user/UploadData"},
            "Action": ["s3:PutObject", "s3:ListBucket"],
            "Resource": [
                "arn:aws:s3:::bucketname",
                "arn:aws:s3:::bucketname/*"
            ]
        }
    ]
}

アカウント A で IAM ユーザーポリシーを設定し、アカウント B でバケットポリシーを設定した後、IAM ユーザーはバケットにオブジェクトをアップロードできます。


このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2019 年 01 月 22 日