이 정책은 S3 버킷에 직접 연결되어, 특정 네트워크(VPC)에서만 접근을 허용하고 데이터 암호화를 강제합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAccessFromSpecificVPCE",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::<BUCKET_NAME>",
"arn:aws:s3:::<BUCKET_NAME>/*"
],
"Condition": {
"StringEquals": {
"aws:sourceVpce": "<VPCE_ID>"
}
}
},
{
"Sid": "DenyUnencryptedObjectUploads",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::<BUCKET_NAME>/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
}
]
}
정책 설명:
변경해야 할 변수:
<BUCKET_NAME>: 과제에서 요구하는 S3 버킷 이름 (예: worldpay-data-bucket)<VPCE_ID>: AWS 콘솔에서 생성한 VPC 엔드포인트의 ID (예: vpce-0a1b2c3d4e5f6g7h8)MySQL에서 데이터를 가져와 S3에 저장하는 Lambda 함수에 부여하는 정책입니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "LambdaS3WriteOnly",
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::<BUCKET_NAME>/<FOLDER_NAME>/*"
},
{
"Sid": "KMSKeyUsage",
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey",
"kms:Encrypt"
],
"Resource": "arn:aws:kms:<REGION>:<ACCOUNT_ID>:key/<KEY_ID>"
}
]
}
정책 설명: