1. Dengan VPC endpoint
dengan ini s3 hanya bisa diakses secara private menggunakan VPC endpoint, isolated didalam VPC access, tidak perlu akses dari internet.
contoh konfig:
bucket policy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
],
"Condition": {
"StringEquals": {
"aws:SourceVpce": "vpce-1234567890abcdef"
}
}
}
]
}
membuat VPC endpoint
aws ec2 create-vpc-endpoint --vpc-id vpc-1234567890abcdef --service-name com.amazonaws.us-east-1.s3 --route-table-ids rtb-1234567890abcdef
2. Dengan whitelist internal network
buat policy di bucket, dengan policy berikut maka bucket hanya bisa diakses dari network 192.168.1.0/24.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "192.168.1.0/24"
}
}
}
]
}
Kalau mau lebih spesific pricipal bisa dilimit juga misal dengan kondisi
3. Logging
Dengan ini bisa mengetahui log seperti siapa yang akses ke bucket
aws s3api put-bucket-logging --bucket my-bucket --logging-configuration '{"DestinationBucketName": "my-logs-bucket","LogFilePrefix": "s3-access-logs/"}'
Reference
Comments
Post a Comment