Cloud & DevOps/AWS

[AWS] S3에 대한 권한은 어떻게 얻을까?

백곰곰 2022. 10. 26. 20:32
728x90
반응형

S3에 대해 접근 권한을 설정할 때 IAM, Bucket Policy 등 다양한 설정을 활용할 수 있습니다.

여러가지 제어 방법을 동시에 사용할 때 최종적으로 S3에 대한 권한은 어떻게 설정되는지 알아보겠습니다.

 

S3 버킷 접근 권한 고려 요소

  • IAM
    • IAM role, user, group 권한
  • Bucket Policy
    • 특정 user, role, IP 접근 및 public access 설정 등
  • S3 Block Public Access
    • Account 레벨
      • AWS Config (s3-account-level-public-access-blocks 등)
    • Bucket 레벨
  • ACL (미권장)
    • Bucket ACL
    • Object ACL
  • VPC Endpoint Policy
    • S3 접근을 위해 VPC Endpoint를 사용하는 경우 고려
  • Organization SCP
    • SCP에 S3 관련 정책이 포함된 경우

 

S3 버킷 접근 권한 결정 로직

출처) https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html

 

S3에 대한 권한 부여는 위 항목들의 설정을 순차적으로 확인하며 Deny/Allow 여부를 결정합니다.

참고로 Resource-based polices는 S3, VPC endpont, KMS, SQS 등에 직접 설정한 정책을 말하며

Identity-based policies는 IAM user, role, group에 연결된 정책을 의미합니다.

두 policy 설정 중 다른 점은 "Principal" 항목입니다.

Identity-based policies는 해당 정책이 부착된 IAM 객체가 Principal에 해당되기에, 별도로 정책에 명시하지 않습니다.

 

최종 권한 확인에 있어 명시적 Deny가 항상 우선되므로 어느 하나의 설정에 deny 설정이 있다면 allow 설정이 있어도 권한 부여가 deny됩니다.

간략하게 아래와 같이 생각할 수 있습니다.

  1. 명시적 Deny 확인 -> Deny
  2. 명시적 Allow 확인 -> Allow
  3. 최종 Deny

관련 Workshop

아래 AWS 워크샵을 통해 S3 접근 제어에 대한 실습을 할 수 있습니다.

링크 : https://github.com/aws-samples/amazon-s3-security-settings-and-controls

728x90