한 계정 (A)에서 다른 계정 (B)으로 S3 버킷을 이동하려고합니다. 이 작업을 성공하고 계정 A에서 버킷을 제거했습니다. 새 버킷을 계정 B에서 계정 B의 다른 버킷으로 이동하려고하는데 버킷 자체 외에는 파일에 대한 액세스 권한이 없다는 것을 알게되었습니다. s3 cli와 그 권한으로 많은 싸움을 한 후 s3api
명령을 확인 하고 파일 (놀라운 놀라움)이 여전히 이전 소유권을 보유하고 있음을 발견했습니다. 나는 지금 그것을 변경하려고 노력하고 있지만 put-bucket-acl
, JSON 파일이 s3api
명령에 대해 작동하지 않습니다 . debug에서 명령을 실행하려고 시도했지만 너무 많이 만들지는 않았습니다. 아무도 무엇을 해야할지 알고 있습니까? 이 문제를 해결하는 더 좋은 방법일까요?
내가 지금까지 한 것 : 명령 :
aws s3api put-bucket-acl --bucket my-bucket --cli-input-json file://1.json
(put-object-acl과 동일)
1. json 파일 :
"Grantee": {
"DisplayName": "account_B",
"EmailAddress": "[email protected]",
"ID": "111111hughalphnumericnumber22222",
"Type": "CanonicalUser",
"Permission": "FULL_CONTROL"
}
내가 얻는 오류 :
입력의 알 수없는 매개 변수 : "Grantee", 다음 중 하나 여야 함 : ACL, AccessControlPolicy, Bucket, ContentMD5, GrantFullControl, GrantRead, GrantReadACP, GrantWrite, GrantWriteACP 입력의 알 수없는 매개 변수 : "Permission", 다음 중 하나 여야 함 : ACL, AccessControlPolicy, Bucket , ContentMD5, GrantFullControl, GrantRead, GrantReadACP, GrantWrite, GrantWriteACP
업데이트 : 두 계정 간의 AssumeRole이 제 경우에는 작동하지 않습니다. cli (s3cmd, s3api) GUI (MCSTools, bucketexplorer), 헤더를 사용하는 ACL, 본문 (Postman)도 도움이되지 않았습니다. AWS 지원을 연결하고 최선을 다하고 있습니다. 해결책이 있으면 업데이트하겠습니다.
그래서 AWS 지원이 구출되었습니다 ... 다른 사람들이 볼 수 있도록 이걸 남겨두고 있습니다. 그래서 그들은 내가 뭘 잘못했는지 알아 내려고했던 것처럼 2 일을 낭비 할 필요가 없습니다 ...
aws s3api get-object-acl --bucket <bucket_on_B> --key <Key_on_B_Owned_by_A> --profile IAM_User_A > A_to_B.json
결과 적용 :
aws s3api get-bucket-acl --bucket <Bucket_on_B> --profile IAM_User_B
생성 된 json 파일로 이동 한 다음
aws s3api put-object-acl --bucket <Bucket_on_B> --key <Key_on_B_Owned_by_A> --access-control-policy file://A_to_B.json --profile IAM_User_A
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다