AWS re:Postを使用することにより、以下に同意したことになります 利用規約

他の AWS アカウントが私の Amazon S3 バケットにオブジェクトをアップロードするときに、それらのアカウントがオブジェクトの完全なコントロールを私に付与することを義務付けるにはどうすればよいですか?

所要時間1分
0

他の AWS アカウントのユーザーが私の Amazon Simple Storage Service (Amazon S3) バケットにオブジェクトをアップロードできるようにしたいと考えています。ただし、そのユーザーが私にそのオブジェクトの完全なコントロールを付与するように要求したいと考えています。どうすればそれができますか?

解決方法

そのユーザーがバケットにオブジェクトをアップロードするときに、bucket-owner-full-control アクセスコントロールリスト (ACL) を含めるようにユーザーに求めるバケットポリシーを追加します。

例えば、このバケットポリシーは、オブジェクトの ACL が bucket-owner-full-control に設定されている場合にのみ、ExampleUser がオブジェクトを DOC-EXAMPLE-BUCKET にアップロードできるように指定します。

{
    "Id": "Policy1541018284691",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1541018283275",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            },
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/ExampleUser"
                ]
            }
        }
    ]
}

このバケットポリシーを追加した後、ユーザーは、次のように、必要な ACL をアップロードリクエストの一部として含める必要があります。

aws s3 cp example.jpg s3://DOC-EXAMPLE-BUCKET --acl bucket-owner-full-control

ユーザーがアップロードリクエストで ACL の要件を満たしていない場合は、「An error occurred (AccessDenied) when calling the PutObject operation: Access Denied」(PutObject オペレーションを呼び出すときにエラー (AccessDenied) が発生しました: アクセスが拒否されました) というエラーメッセージが表示されます。

バケット内にある、他のアカウントが所有する既存のオブジェクトについては、オブジェクトの所有者が put-object-acl コマンドを実行してお客様に完全なコントロールを付与することができます。

aws s3api put-object-acl --bucket DOC-EXAMPLE-BUCKET --key example.jpg --acl bucket-owner-full-control

bucket-owner-full-control ACL は、バケット所有者に別のアカウントによってアップロードされたオブジェクトへの完全なアクセス権を付与しますが、この ACL だけでは、オブジェクトの所有権を付与しません。bucket-owner-full-control ACL を使用してアップロードされたオブジェクトの所有権を自動的に取得するには、S3 オブジェクトの所有権をバケット所有者が優先されるように設定します。S3 オブジェクトの所有権を更新すると、bucket-owner-full-control ACL を使用してアップロードされた新しいオブジェクトは、バケットのアカウントによって自動的に所有されます。


関連情報

別の AWS アカウントによって私の Amazon S3 バケットへアップロードされたオブジェクトにアクセスする方法を教えてください。

バケット所有者はフルコントロール権限を持ちながら、オブジェクトをアップロードするクロスアカウントアクセス許可を付与する

IAM チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任

ACL 許可とアクセスポリシーの許可のマッピング

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ