다른 계정에서 S3에 업로드된 파일의 소유자 변경

소개



여러 계정을 운영하는 경우 다른 계정에서 S3로 파일을 업로드할 수 있다고 생각합니다.
이 경우 기본적으로 파일이 원래 계정을 소유자로 업로드됩니다.

S3 버킷과 업로드된 파일의 소유자가 다른 경우에는 명령으로 복원 작업을 할 수 없는 등의 문제가 발생하기 때문에 이번에는 그 대응 방법에 대해 시도해 보았습니다.

구현 절차



파일 업로드



다른 계정에서 S3 버킷으로 파일을 업로드합니다.
※업로드는 EC2에 첨부한 IAM 롤을 사용해 실시했습니다
※업로드 대상의 S3 버킷의 정책으로 IAM 롤을 허가하고 있습니다.


업로드 방법은 이하의 블로그로 쓰고 있으므로, 그쪽을 참조해 주세요.
htps //w w. 또는 py 장미 - 엔기 네 r. 코m/엔트리/2021/05/20/120604

소유자는 업로드한 AWS 계정이 되었습니다. (여러 사정으로 모자이크 걸고 있습니다)


그 상태라면 S3 버킷 소유자의 계정에서 객체에 액세스할 수 있는 권한이 부족하기 때문에 이와 같이 오류가 발생합니다.



업로드 시 객체 소유자 변경



2020년 10월에 AWS에서 다음 업데이트가 있었습니다.
간단히 말하면 S3 버킷 측 설정에서 "Object Ownership"을 설정하고 업로드시 [bucket-owner-full-control]을 지정하여 소유자를 S3 버킷 계정으로 변경할 수 있습니다.
htps : // 아 ws. 아마존. 이 m / jp / b ぉ gs / 아 ws / 아마 존 - s 3 - 우 p - th ree - w

설정 내용은 ↑의 링크에 쓰고 있습니다만, 차례로 실시해 갑니다.

대상 S3 버킷의 사용 권한 탭을 누릅니다.


객체 소유자의 설정 부분에서 편집 버튼을 누릅니다.


기본값은 객체 라이터이므로 버킷 소유자로 변경합니다.


업데이트가 완료되면 화면에 표시됩니다.


변경할 수 있었으므로 다시 다른 계정에서 파일을 업로드해 봅니다.
우선 [bucket-owner-full-control]을 지정하지 않는 업로드입니다.


객체를 보면 소유자는 특별히 변하지 않습니다.


다음은 [bucket-owner-full-control]을 지정하여 업로드해 보겠습니다.
$ aws s3 cp .\test3.txt s3://test-tmp-20210603/test/ --acl bucket-owner-full-control

소유자가 S3 버킷을 소유한 AWS 계정입니다.


설정 전에서는 에러가 나와 있던 액세스 허가와 서버 측 암호화의 설정도 에러 없이 확인할 수 있었습니다.



그건 그렇고



이번 S3 버킷에서 설정하지 않고 [bucket-owner-full-control]을 지정하여 업로드해도 오류가 발생하지 않도록 할 수 있습니다.

다만, 소유자는 원래의 계정인 채이므로, 만약 지정을 하지 않고 업로드된 경우는 뜻밖에 조작할 수 없다고 하는 것이 발생할 가능성이 있습니다.

그 때는 버킷 정책에 "s3:x-amz-acl": "bucket-owner-full-control"을 지정하는 등, 업로드시에 제한하는 것을 추천합니다.

결론



간단하지만 지금까지 몰랐기 때문에 해 보았습니다.
여러 계정에서 파일을 S3에 업로드할 때 조심하세요.

좋은 웹페이지 즐겨찾기