회사에서 AWS의 S3 서비스를 사용해볼 일이 생겼습니다.
S3 특정 버킷에 액세스 권한을 줘야하는 일이 생겼고, 구글링하면서 어찌저찌 하다보니 성공했네요..
나중에라도 써먹을 때 까먹지 않으려고 포스팅을 남깁니다.
1) 버킷 정책을 만들고자 하는 버킷을 클릭
2) 메뉴 중 권한 탭을 클릭하면 버킷 정책이 보인다.
3) 이 곳에 버킷 정책을 작성하면 된다. 아래로 스크롤을 내리면 정책 생성기가 있다.
4) 버킷 정책 만들기
- Select Type of Policy : 정책 타입
- Effect : 버킷에 대한 명령을 허용(Allow)할 것인지 거부(Deny)할 것인지에 대한 옵션
- Principal : 특정 사용자에 대해 권한을 제어하고 싶다면 입력한다. (전체 : * / 특정 사용자 : arn:aws:iam:AWS-account-ID:user/IAMID)
- AWS-account-ID : aws 계정 / IAMID : aws 계정 속 IAMID
- AWS Service : Step 1에서 정책 타입 선택시 자동 지정 되는 서비스
- Actions : 버킷에 대해 어떤 작업을 허용(또는 거부)할 것인지 선택하는 옵션
- Amazon Resource Name(ARN) : 접근 권한을 주고자하는 버킷을 입력한다. (입력 포맷 : arn:aws:s3:::버킷명/*)
5) 모든 입력을 마친 후 아래 Add Statement - Generate Policy를 클릭한다.
*Principal에 여러 사용자를 두고 싶다면 아래와 같이 등록하면 된다.
{
"Version": "2012-10-17",
"Id": "",
"Statement": [
{
"Sid": "",
"Effect": "Deny",
"Principal": {
"AWS": [
"arn:aws:iam::AWS-Account-ID:user/IAMID1",
"arn:aws:iam::AWS-Account-ID:user/IAMID2"
]
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::test1/*"
}
]
}
6) 만들어진 정책을 3) 정책 칸에 붙여넣는다.
7) 이제 해당 IAM계정으로 로그인 후 버킷에 접근해보면 버킷내 모든 파일에 대한 액세스 접근 제한을 확인할 수 있다.
참고
https://real-dongsoo7.tistory.com/101
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/amazon-s3-policy-keys.html
https://aws.amazon.com/ko/premiumsupport/knowledge-center/s3-invalid-principal-in-policy-error/
+피드백은 언제나 환영입니다 :)