Amazon S3 버킷의 관리를 해당 특정 버킷으로 제한하는 자격증명-기반 정책을 생성
Amazon S3: S3 버킷에 있는 객체에 대한 읽기 및 쓰기 액세스 권한을 허용합니다.
[ AWS ] IAM Policy 특정 S3만 읽기 / 쓰기 권한 부여
S3 버킷 정책에서 해당 버킷에 접근 가능한 IAM 사용자를 지정
CI/CD에 사용되는 anam-earth-deploy는 CodeDeployFullAccess와 S3FullAccess 정책을 연결하여 별도로 생성한다.
IAM 정책 AmazonS3ListAccess
생성
정책이 연결된 사용자는 AWS 콘솔 > S3 > 버킷에서 전체 버킷 목록 및 지역 확인 가능. IAM 사용자의 콘솔 사용 편의성을 위해 생성했다. 만약 없다면, url을 통해서 원하는 버킷 콘솔에 직접 접속해야 한다.
S3를 콘솔로 이용하는 모든 사용자가 공통으로 사용하는 정책이므로 IAM 정책 생성 후 사용자 그룹에 연결한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListAllMyBuckets"
],
"Resource": "*"
}
]
}
IAM 사용자 그룹 AmazonS3BucketAccess
생성
콘솔에서 특정 S3 버킷만 접근하는 모든 사용자를 포함한다. 프로젝트를 새로 할 때마다 별도로 만들 필요 없고, S3 전용 IAM 사용자 전체를 포괄한다. 위에서 만든 AmazonS3ListAccess 정책을 연결해준다.
IAM 사용자 anam-earth-s3
생성
anam-earth라는 버킷 접근 권한만 갖는 사용자이다. 콘솔 사용을 활성화하고 비밀번호를 만들어준다.
S3 버킷 anam-earth
및 버킷 정책 생성
버킷 정책에는 Principal 객체를 통해 이 버킷에 접근 가능한 사용자를 명시해준다. 버킷 객체에 관한 읽기/쓰기 권한을 포함한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListObjectsInBucket",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::[AWS-account-ID]:user/anam-earth-s3"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::anam-earth"
},
{
"Sid": "AllObjectActions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::[AWS-account-ID]:user/anam-earth-s3"
},
"Action": [
"s3:DeleteObject",
"s3:GetObject*",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::anam-earth/*"
}
]
}