CloudFront 및 S3 엔드포인트
4232 단어 CloudFrontS3AWS
A. static website hosting의 엔드포인트를 Origin Domain Name으로 지정
1.S3에서 정적 웹사이트 호스팅 공개
버킷 정책은 다음과 같이 설정.
{
"Version": "2012-10-17",
"Id": "Policy1557901682108",
"Statement": [
{
"Sid": "Stmt1557901670604",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::leomaro.tk/*"
}
]
}
2.Origin Domain Name에 S3의 static website hosting 지정
이제 CloudFront 엔드포인트에서 액세스할 수 있습니다.
그러나, 이와 같이 S3의 static website hosting의 엔드 포인트를 지정했을 경우, cloud front로부터만 액세스 한다고 할 수 없다.
그래서 Origin Custom Headers에 특정의 캐릭터 라인을 보내, S3 버킷으로 그 특정의 Header가 있는 경우만 GetObject 할 수 있다고 하는 버킷 폴리시를 설정한다.
3 Origin Custom Headers 붙이기
4 S3 버킷 정책 변경
name 에 test 가 있는 경우는, Allow, 없는 경우는 Deny.
{
"Version": "2008-10-17",
"Id": "http referer policy",
"Statement": [
{
"Sid": "Referer-Allow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::leomaro.tk/*",
"Condition": {
"StringLike": {
"aws:name": "test"
}
}
},
{
"Sid": "Explicit deny to ensure requests are allowed only from specific referer.",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::leomaro.tk/*",
"Condition": {
"StringNotLike": {
"aws:name": "test"
}
}
}
]
}
5 테스트해보기
curl --header 'name:test' website hosting Endpoint URL
#→アクセスできる
curl --header 'name:test' website hosting Endpoint URL
#→アクセスできない(403エラー)
B. S3 엔드포인트를 Origin Domain Name으로 지정
1 Origin Domain Name에 S3 엔드포인트 지정
이 때 설정은 다음과 같이 합니다.
{
"Version": "2012-10-17",
"Id": "Policy1557901682108",
"Statement": [
{
"Sid": "Stmt1557901670604",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::leomaro.tk/*"
}
]
}
{
"Version": "2008-10-17",
"Id": "http referer policy",
"Statement": [
{
"Sid": "Referer-Allow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::leomaro.tk/*",
"Condition": {
"StringLike": {
"aws:name": "test"
}
}
},
{
"Sid": "Explicit deny to ensure requests are allowed only from specific referer.",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::leomaro.tk/*",
"Condition": {
"StringNotLike": {
"aws:name": "test"
}
}
}
]
}
curl --header 'name:test' website hosting Endpoint URL
#→アクセスできる
curl --header 'name:test' website hosting Endpoint URL
#→アクセスできない(403エラー)
1 Origin Domain Name에 S3 엔드포인트 지정
이 때 설정은 다음과 같이 합니다.
2 S3 측의 버킷 정책을 들여다 봅니다.
이전에는 Grant Read Permissions on Bucket에서 설정한 내용이 반영되어 있습니다.
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E3UEIDRYVURC48"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::leomaro.tk/*"
}
]
}
3 액세스해보기
S3의 엔드포인트 → 액세스할 수 없음
CloudFront 엔드포인트 → 액세스 가능
Reference
이 문제에 관하여(CloudFront 및 S3 엔드포인트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/leomaro7/items/a0861e789fb26cc3f004텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)