S3 Cross Account 사용 시 ACL 설정 관련 문제

0

안녕하세요.

현재 상황은 아래와 같습니다.

Account A - Bucket Owner

Account B - Object Writer/Reader

Account C - Object Writer/Reader

현재 Bucket은 Object Writer가 Owner가 되도록 설정이 되있는 상태로, 별도 설정없이 Account B에서 업로드 시 Account A/C에서 파일 접근이 불가능한 상황입니다. 그래서 Account A의 경우 파일 업로드 시 --acl bucket-owner-full-control 파라미터로 해결이 가능했습니다.

이제 Account C에서 Account B가 생성한 파일을 접근하려고 하는데, 동일한 ACL 설정 문제로 접근이 되지 않는 것 같고, 이를 해결하기 위해서는 별도 ACL 설정이 필요한 것 같았습니다. 결국 파일 생성을 할 때마다 ACL 관련 Grantee로 Account C를 매번 설정해야하는 것일까요?

Bucket 전체로 Account A와 Account C ACL을 설정해도, 결국 Account B가 생성한 파일은 Account B의 ACL 적용을 받기 때문에, Bucket에 적용한 ACL Policy는 적용이 되지 않는 것 같네요.

결국 현재 제가 제안하는 방법은 파일 업로드 시 ACL에 Account A, C를 명시하는 방법입니다만, 더 좋은 방법이 있을지 궁금합니다.

1개 답변
1
수락된 답변

안녕하세요? 문의하신 내용은 모두 ACL 을 사용하기 때문에 고려해야하는 항목으로 언급하신 방법이외에 좀 더 편리한 2가지 옵션이 있을 수 있습니다.

옵션 1. 가장 간단한 방법으로 S3 Bucket 의 Object Ownership 옵션을 "ACLs disabled (recommended)" 하시면 S3 Bucket 에 업로드되는 모든 파일의 Ownership 이 강제로 Bucket Owner 로 변경되게되므로(Bucket owner enforced) 파일 업로드 시마다 ACL 을 명시할 필요 없이 Bucket Policy 만으로 파일에 대한 공유 설정이 가능합니다.

옵션 2. 반드시 ACL Enabled 상태로 사용해야 하는 요구 사항이 있다면 ACL Enabled 상태에서 세부 옵션을 "Bucket owner preferred" 로 선택하시는 방법도 가능합니다. 이 경우 아래에 설명된 것과 같이 파일 별로 별도로 Object 접근 권한을 명시하지 않더라도 파일 업로드 시 bucket-owner-full-control canned ACL 만 명시하면 자동으로 해당 파일에 대한 Ownership 은 Bucket Owner 로 바뀌게 됩니다.

If new objects written to this bucket specify the bucket-owner-full-control canned ACL, they are owned by the bucket owner. Otherwise, they are owned by the object writer.

감사합니다.

profile pictureAWS
답변함 일 년 전
  • 현재 위 Bucket은 Security Measure 때문에 옵션 1로는 불가능한 상황입니다. 옵션 2의 경우도 결국 Account C에게 추가 권한 부여가 필요해서 SDK 내에서 권한 부여 후 Put하는 방향으로 진행했습니다. 전 옵션에 대해서 자세히 설명해주셔서 감사합니다.

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인