흰 스타렉스에서 내가 내리지

Amazon S3 권한 관리 본문

AWS

Amazon S3 권한 관리

주씨. 2023. 9. 18. 23:04
728x90

aws S3 권한을 관리하는 방법은 크게 두 가지가 있다. 

 

- Identity-based policied (자격 증명 기반 정책)

    - 자격증명 (IAM유저, 그룹, 역할)에 부여하는 정책

    - 해당 자격증명이 무엇을 할 수 있는지 허용

 

- Resource-based policies (리소스 기반 정책)

    - 리소스 (예: S3, SQS, VPC Endpoint, KMS 등)에 부여하는 정책

    - 해당 리소스에 누가 무엇을 할 수 있는지 허용 가능

        - 예 : SQS 대기열에 Lambda Service가 접근 가능

 

 

# 1. S3 버킷 정책

- 버킷 단위로 부여되는 리소스 기반 정책

- 해당 버킷의 데이터에 "언제 어디서 누가 어떻게 무엇을" 할 수 있는지 정의 가능

    - 리소스의 계층 구조에 따라 권한 조절 가능

        - 예 : resource : "arn:aws:s3:::my-bucket/images/*" → my-bucket의 images/로 시작하는 모든 객체에 대해서 ...

    - 다른 계정의 엔티티에 대해서 권한 설정 가능

    - 익명 사용자에 대한 권한 설정 가능 (public)

- 기본적으로 모든 버킷은 private → 접근 불가능 

 

 

 

# S3의 계층 구조

- AWS 콘솔에서는 S3의 디렉토리(폴더)를 생성 가능하고 확인 가능

- S3 내부적으로는 계층구조가 존재하지 않음 

   - 키 이름에 포함된 "/" 로 계층 구조를 표현

   - 예 : 

        - s3://mybucket/world/korea/seoul/guro/map.json

        - 버킷명 : mybucket

        - 키 : world/korea/seoul/guro/map.json (단일 스트링)

 

Effect : Allow or Deny

Principal : 누가.  위 사진에서는 와일드카드라서 아무나

Action : get 할수 있음

Resource : 어떤 객체에 대해서?

 

 

위와 같이 불특정 다수에게 공개하는 정책을 적용하기 위해서는 퍼블릭 액세스 차단을 해제해야 한다. 

이거 해제하지 않으면 버킷정책을 가지고 있다고 하더라도 퍼블릭 액세스 차단이 먼저 적용되기 때문에 아무도 그 버킷에 접근할 수 없다. 

 

 

# S3 버킷 관리 방법의 선택

> Identity-based policies (자격 증명 기반 정책)

- 같은 계정의 IAM 엔티티의 S3 권한 관리할 때 

- S3 이외에 다른 AWS 서비스와 같이 권한 관리할 때 

 

> Resource-based policied (리소스 기반 정책)

- 익명 사용자 혹은 다른 계정의 엔티티의 S3 이용 권한을 관리할 때 

- S3 만의 권한을 관리할 때 

 

 

 

# 2. S3 Access Control List (ACL)

> S3 Access Control List (ACl)

- 버킷 혹은 객체 단위로 읽기, 쓰기의 권한을 부여 

- S3에서 설정을 통해 ACL를 활성화 시킨 후에 적용 가능 

- 파일 업로드 시 설정 가능 

- 간단하고 단순한 권한 관리만 가능 

- 점점 사용하지 않는 추세 

    - 버킷 정책으로 이제 다 할 수 있으니까 AWS에서도 더 이상 권장하지 않음 

 

이렇게 생겼다

 

 

 

 

'AWS' 카테고리의 다른 글

디커플링, SQS, SNS  (0) 2023.09.20
S3 정적 호스팅  (0) 2023.09.18
Elastic Load Balancer (ELB)  (0) 2023.09.11
EC2 Autoscaling(오토스케일링)  (0) 2023.09.11
EBS, Snapshot, AMI-  (0) 2023.09.02