S3 버킷 정책 작성 방법 요약
버킷 정책을 중심으로 리소스 기반 정책을 작성하는 방법을 요약합니다.
전제
예를 들어 S3을 정적 호스팅 대상으로 설정하는 경우,
· 블록 공개 액세스 차단 비활성화
· 정적 웹사이트 호스팅 활성화
이러한 작업을 수행하지만, 그냥 엔드포인트에 액세스할 수 없습니다.
↑액세스하면 이렇게 된다
무엇이 부족한지 버킷 정책 설정입니다.
S3의 버킷 정책은 기본적으로 완전히 거부됩니다.
버킷 정책 전모
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1621068192000",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::${ここにバケットの名前を入れる}"
}
]
}
위와 같이 설명합니다.
각 항목에 대해서는 여기 공식 참조에서 확인할 수 있습니다.
버전
이것은 IAM 정책의 문법 버전입니다.
현재 (2021/5/15)는
2012-10-17
입니다.이미 상당히 긴 것 변하지 않았습니다.
Statement.Sid
이것은 정책 문서에 임의로 주는 식별자입니다. 각 명령문에 할당할 수 있으며 정책 내에서 중복되어서는 안 됩니다.
Statement.Effect
허가 목록인 Allow(화이트리스트)로 할 것인지, 금지 목록인 Deny(블랙리스트)로 할 것인지 선택할 수 있습니다.
Statement.Principal
어느 상대(Principal)에 대해서 허가 또는 거부할지를 지정합니다.
지정할 수 있는 대표적인 프린시펄은 아래와 같은 것이 있습니다.
"Principal": { "AWS": "arn:aws:iam::AWSアカウントID:user/userネーム" }
// 下記だと全てのユーザーに対して許可となる
"Principal": { "AWS": "*" }
Statement.Action
허용 또는 거부할 조치를 지정합니다.
// s3全てのアクション
"Action": "s3:*"
// sqsのsedMessageアクション
"Action": "sqs:SendMessage"
Statement. Resource
일련의 명령문이 어떤 자원에 반영되는지를 설명합니다.
// examplebucketという名前のs3に対してポリシーのステートメントが反映される。
"Resource": "arn:aws:s3:::examplebucket"
// ワイルドカードも一部使用可能。下記はexamplebucketという名前のS3バケット内の全ての項目に対して反映される。
"Resource": "arn:aws:s3:::examplebucket/*"
응용 설명
Condition
를 사용하여 정책이 실행되는 시점의 조건을 지정할 수 있습니다.이에 따라
- IP 제한
- 사용자 이름별 제한
- HTTP Referer 제한
- MFA 요청
등 세세한 컨트롤을 할 수 있습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET",
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
],
"Condition": {
"NotIpAddress": {"aws:SourceIp": "54.240.143.0/24"}
}
}
]
}
Effect가
Deny
(거부)이고 NotIpAddress
로 IP 주소가 지정되었으므로54.240.143.0/24
의 IP 주소 이외는 거부한다, 라고 하는 설정이 됩니다.{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
"Condition": {
"StringEquals": {
"aws:username": "myname"
}
}
}
]
}
위의 내용은 AWS 사용자 이름이
myname
인 경우에만 허용됩니다.aws:username
와 같은 정책 문서에서 얻을 수 있는 키는 아래 공식 문서에 나열되어 있습니다.태그나 리전, 날짜 등 다양한 키를 얻을 수 있는 것 같습니다.
AWS 글로벌 조건 컨텍스트 키
정책 생성기
공식 측에서 정책 생성기 되는 것도 준비되어 있어 매우 편리합니다.
기초를 제너레이터로 바삭하게 작성해, 세세한 부분은 수정해 가는 등의 이용을 해 나가려고 생각합니다.
참고 자료
Reference
이 문제에 관하여(S3 버킷 정책 작성 방법 요약), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/irico/items/a3ab1f8ebf1ece9cc783텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)