S3의 보안을 여러가지로 설정할 수 있는데 그 중 하나가 S3 버킷 정책을 적어놓는것.
자세한 사항은 아래
docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html
아래로 들어가면 편집을 할 수 있고 쉽게 만들 수 있도록 정책 생성기도 제공해준다.
버킷 선택 > 권한 > 버킷정책 > 편집
정책생성에 대한 각 설명도 제공한다.
docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html
조금 대략적으로 적어본다면
Effect - 접근하는 사람을 선택할 것인가 안선택할것인가
Allow - 모두 허용
Deny - 선택해서 받음
Principal - 접근할 수 있는 사람
* - 모두
접근할 수 있는 사람 명시 - 그 사람만
docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html
Amazon Resource Name (ARN) - 접근하고자 하는 S3의 버킷 ARN/경로
generate policy 를 클릭하면 정책을 만들어 준다.
예시
{
"Id": "Policy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucket/*",
"Principal": "*"
},
{
"Sid": "Stmt1620641210263",
"Action": [
"s3:PutObject"
],
"Effect": "Deny",
"Resource": "arn:aws:s3:::bucket/*",
"Principal": {
"AWS": [
"arn:aws:iam::"
]
}
}
]
}
https 접속
ERROR
1. Action does not apply to any resource(s) in statement
resource의 경로를 지정해주지 않아서 그렇다.
예를들어 bucket의 arn 이 arn:aws:s3:::bucket이라고 하였을 경우 버킷 전체에 접근이 가능하다면
arn:aws:s3:::bucket/*
폴더를 지정하려면
arn:aws:s3:::bucket/readOnlyFolder/*
등으로 지정해 주어야한다.
stackoverflow.com/questions/44228422/s3-bucket-action-doesnt-apply-to-any-resources
docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Action
3가지 종류의 S3 bucket policy
mystria.github.io/archivers/3ways-to-set-s3-bucket-policy
docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html
'프로젝트 설정 > AWS|GCP' 카테고리의 다른 글
[AWS] EC2 용량 증설 (feat. No space left on device) (0) | 2022.01.12 |
---|---|
[AWS] Amazon Linux 2 AMI 에서 apt-get 이 실행되지 않을 경우 (0) | 2021.11.17 |
[AWS] ROUTE 53 도메인 연결 (EC2 연결) (0) | 2021.04.13 |
[AWS][ubuntu] python 설치 (flask install) (0) | 2021.04.05 |
[AWS] ubuntu 업데이트 (0) | 2021.04.05 |