Aws
S3 정적 호스팅 없이 CloudFront S3 호스팅 하기
wngnl05
2024. 12. 27. 14:54
1. S3에 kms를 연결해줍니다.
2. Cloudfront를 생성해줍니다.
CloudFront ( S3 )를 원본으로 생성할때 "원본 액세스" - "원본 액세스 제어 (권장)"을 선택하
Origin Access Control 은 s3로 선택해줍니다.
그리고 kms 정책 Statement에 아래 코드를 추가해줍니다.
{
"Sid": "Decrypy Role",
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "kms:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:SourceArn": "<CloudFront ARN>"
}
}
}
다른 방식 Link
CloudFront 함수 만들어서 아래 코드를 적용한다.
/로 접근시 /frontend/index.html로 보내준다.
이를 설정하기 위해서는 s3에 정적 웹 호스팅을 index.html로 작성하고
s3는 앤드포인트를 사용하지 않고 배포하되 Legacy access identities을 생성하여 보킷 정책 업데이트를 해주면 됩니다.
function handler(event) {
var request = event.request;
var uri = request.uri;
// Check whether the URI is missing a file name.
if (uri.endsWith('/')) {
request.uri += 'index.html';
}
return request;
}