-
AWS - S3 실습 2: 권한 부여 실습Infra/클라우드 2023. 8. 5. 17:12
S3에서 권한 제어 하는 법
- ACL(Access Control List) : 객체마다 ACL 지정 가능 주로 간단한 제어에 사용
기본적으로 파일 업로드를 하면 객체가 하나 생성된다. 필요하다면 객체에 ACL을 지정할 수도 있고 안 할 수도 있다. 제일 쉽고 간단한게 각 객체의 접근권한을 조정할 수 있는 방법이다.
- Bucket Policy : IAM Policy와 유사한 문법 ACL보다 복잡하고 세부적으로 지정 가능
- IAM을 이용한 제어 : IAM 사용자에게 버킷 접근 권한을 주기 위해 사용
- PresignedURL : URL을 이용해 임시 권한을 부여하는 기능. 매우 유요하게 쓰인다. (개발시 유용하게 사용된다.)
S3 실습 2: 권한 부여 실습
1. 파일 public으로 만들어 보기
⭐ 버킷을 기본 옵션으로 생성하면 public으로 설정할 수 없도록 되어 있다.
[버킷]-[퍼블릭으로 설정할 버킷]-[권한]-[퍼블릭 액세스 차단 (버킷설정)-편집] 의 과정을 거쳐 public으로 설정할 수 있는 버킷으로 만들어 준다.
2. ACL 살펴보기
ACL(Access Control List) s3의 모든 객체가 가지고 있다. 이것을 이용해서 객체의 권한을 각각 편집할 수 있다. 사실 [객체작업]에서 파일을 퍼블릭으로 설정하는 것은 ACL을 이용해서 모든 사람에게 해당 객체(파일)의 읽기권한을 주는 것과 똑같다.
[버킷]-[해당버킷]-[해당이미지파일]-[권한]-[ACL(액세스 제어 목록)]-[피부여자]위 경로에서 피부여자 중 하나인 "인증 사용자 그룹(AWS 계정이 있는 모든 사용자)"는 사실 Linux의 사용자 그룹& 파일 관리와 상당히 유사하다. Linux 파일관리도 "나", "others", "group"으로 파일에대한 권한을 관리한다.
우선 첫번째 행에 해당하는 객체 소유자는 객체를 읽을 수 있게 되어있고, 객체의 ACL차체에 대해서도 읽기 및 쓰기 권한을 가지고 있다.
두번째 행에 해당하는 모든 사람은 make public으로 객체에대한 읽기 권한을 줄 수 있다.
3.bucket policy로 특정 폴더에 접근 권한 주기
bucket policy는 말그대로 bucket 전체에 줄수 있는 정책이다. 한 bucket의 여러개의 bucket policy를 적용해서 권한을 제어할 수 있다.
public 프리픽스이하의 파일에 대해서 public한 객체(파일)읽기 권한을 준다. 매번 업로드를 하면서 개별적인 파일의 ACL을 변경해주는 방법이 있고, 또 다른 방법은 bucket policy를 이용해서 public 프리픽스에 해당하는 객체의 읽기 권한을 모두 public으로 설정하는 것이다.
AWS 콘솔에서 ACL을 이용해서 원하는 폴더의 하위 폴더의 해당하는 객체(파일)을 모두 public으로 할수는 없다.❌
{ "Id": "Policy[생략]", "Version": "2012-10-17", "Statement": [ { "Sid": "[생략]", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::[해당버킷]/public/*", "Principal": "*" } ] }
[버킷]-[해당버킷]-[권한]에 들어가면 "버킷 정책"이라는 것이 존재한다. [정책편집기]를 이용해 정책을 생성해준다음 정책을 복붙한 후 변경사항을 저장해준다.
'Infra > 클라우드' 카테고리의 다른 글
AWS - S3 실습 4 : static web hosting 사용해 보기 (0) 2023.08.06 AWS - S3 실습3: CLI로 S3 제어 (0) 2023.08.06 AWS - S3 사용 실습 (0) 2023.08.05 AWS - S3 Simple Storage Service (0) 2023.08.05 AWS - CLI 설치 및 간단히 사용해 보기 (0) 2023.08.05