[英]AWS S3 Server side encryption Access denied error
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionsToAAccount", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::XXXXXXX:root" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::DestinationS3Bucket", "arn:aws:s3:::DestinationS3Bucket/*" ] } ] }
當您使用帳戶A的憑據將帳戶A中的一個S3存儲桶中的文件復制到帳戶B中的存儲桶時,目標存儲桶中文件的所有者將是帳戶A.(帳戶A是在帳戶B中創建文件的主體桶)。
在從源到目標存儲區的文件復制期間,添加--acl bucket-owner-full-control
選項,以便帳戶B可以控制文件。 否則,您可能在帳戶B的存儲桶中有文件B無法訪問或控制的文件。
另一種選擇是使用帳戶B的憑據從源復制到目標存儲桶。 這樣,復制文件的所有者是帳戶B.
John Hanely提供的解決方案有效,但不會立即改變所有權。 您需要執行單獨的命令來更改它
第一步:
aws s3 cp s3://yourbucket s3://yourbucket --recursive --acl bucket-owner-full-control
第二步:
aws s3 cp s3://yourbucket s3://yourbucket --recursive --metadata-directive REPLACE
注意--meta-directive REPLACE
您應該以這種方式一起替換文件和元數據 -
aws s3 cp s3://yourbucket s3://yourbucket --recursive --acl bucket-owner-full-control --metadata-directive REPLACE
你不需要cp它。
假設:您有權訪問違規帳戶並且該帳戶具有 putobjectacl 策略權限。
告訴您誰放了文件以及誰有權訪問:
$ aws s3api get-object-acl --bucket yourbucket --key path/to/file
{
"Owner": {
"DisplayName": "the-account-putting-the-thing",
"ID": "offendingaccountrandomidstringthatisntrelaventhere"
},
"Grants": [
{
"Grantee": {
"DisplayName": "the-account-putting-the-thing",
"ID": "offendingaccountrandomidstringthatisntrelaventhere",
"Type": "CanonicalUser"
},
"Permission": "FULL_CONTROL"
}
]
}
要解決此問題,以便目標所有者現在控制文件:
$ aws s3api put-object-acl --bucket yourbucket --key path/to/file --acl bucket-owner-full-control
$ aws s3api get-object-acl --bucket yourbucket --key path/to/file
{
"Owner": {
"DisplayName": "the-account-putting-the-thing",
"ID": "offendingaccountrandomidstringthatisntrelaventhere"
},
"Grants": [
{
"Grantee": {
"DisplayName": "the-account-putting-the-thing",
"ID": "offendingaccountrandomidstringthatisntrelaventhere",
"Type": "CanonicalUser"
},
"Permission": "FULL_CONTROL"
},
{
"Grantee": {
"DisplayName": "the-account-recieving-the-thing",
"ID": "destinationaccountrandomidstringthatisntrelaventhere",
"Type": "CanonicalUser"
},
"Permission": "FULL_CONTROL"
}
]
}
從目標/所有者帳戶角色更改 acl vi s3api 后,我在操作文件時沒有遇到任何問題。
特別感謝前面的回答者。 沒有你,我不可能改正我的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.