AWS S3 ve VPC Endpoint'leri ile Güvenli Veri Erişimi
S3 Access Point'leri ve VPC Endpoint'leri ile AWS'de Güvenli Veri Erişimi
Amazon S3'te paylaşılan veritabanları veya geniş veri setleri yönetiyorsanız, özellikle farklı AWS VPC ağlarından gelen erişimleri güvenli hale getirmek zorlayıcı olabilir. Bu makalede, VPC Endpoint'leri ve S3 Access Point'lerini birlikte kullanarak erişimleri nasıl kısıtlayabileceğinizi ele alacağız.
VPC Endpoint'leri Nedir ve Neden Kullanılır?
Varsayılan olarak S3, genel (public) bir servistir. Ancak AWS VPC içindeki uygulamalarınızın internete açılmadan doğrudan AWS S3 ile iletişim kurmasını istiyorsanız, bir VPC Endpoint kullanmanız gerekir. Bu endpoint'ler, internet gateway veya NAT cihazına ihtiyaç duymadan, AWS ağı üzerinden güvenli ve güvenilir bir bağlantı sağlar.
Ayrıca VPC Endpoint politikaları (policy) oluşturarak, sadece belirli S3 bucket'larına erişim izni verebilirsiniz.
{
"Statement": [
{
"Sid": "Access-to-specific-bucket-only",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::my_secure_bucket", "arn:aws:s3:::my_secure_bucket/*"]
}
]
}
Bununla birlikte, organizasyonunuz büyüdükçe yüzlerce bucket için endpoint politikalarını manuel olarak güncellemek çok zahmetli bir hale gelir. İşte bu noktada S3 Access Point'leri devreye giriyor.
S3 Access Point'lerini Kullanmak
S3 Access Point'leri, Amazon S3 isteklerini yönetmek için benzersiz hostname'ler oluşturmanızı sağlayan bir özelliktir. Her Access Point'in kendi ARN'i ve politikası vardır. En büyük avantajlarından biri, bu Access Point'lerin VPC üzerinden gelen isteklerle kısıtlanabilmesidir.
Eğer AWS IAM izinlerini veya VPC Endpoint politikalarınızı düzenlerken sürekli bucket isimleri eklemek istemiyorsanız, Access Point'leri tüm organizasyonunuz için genel bir çözüm sunar.
VPC Endpoint ve S3 Access Point Entegrasyonu
Endpoint politikanızı her yeni bucket eklendiğinde değiştirmek yerine, S3 Access Point ARN'lerini kullanarak tek bir kural oluşturabilirsiniz. Örnek bir Endpoint politikası şöyledir:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowUseOfS3",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "*"
},
{
"Sid": "OnlyIfAccessedViaAccessPoints",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "*",
"Condition": {
"ArnNotLikeIfExists": {
"s3:DataAccessPointArn": "arn:aws:s3:us-east-1:<Account ID>:accesspoint/*"
}
}
}
]
}
Bu kural sayesinde, VPC'niz üzerinden gelen tüm S3 istekleri bir S3 Access Point üzerinden geçmek zorunda kalır. Yeni bir S3 bucket oluşturduğunuzda, sadece ona bir Access Point atamanız yeterlidir; VPC Endpoint politikasını değiştirmenize gerek kalmaz.
S3 Bucket'larını Sadece VPC Erişimine Açmak
VPC dışından (örneğin internet üzerinden) erişimi tamamen engellemek istiyorsanız, doğrudan S3 Bucket policy üzerinde de kısıtlama yapabilirsiniz.
{
"Version": "2012-10-17",
"Id": "S3BukcetPolicyVPCAccessOnly",
"Statement": [
{
"Sid": "DenyIfNotFromAllowedVPC",
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::<bucket name>",
"arn:aws:s3:::<bucket name>/*"
],
"Condition": {
"StringNotEquals": {
"aws:SourceVpc": "<vpc id>"
}
}
}
]
}
Sonuç
S3 Access Point'leri ve VPC Endpoint'leri birlikte kullanarak, AWS S3 üzerindeki hassas verilerinizin güvenliğini artırabilirsiniz. Bu mimari, operasyonel yükü azaltır ve veri erişim politikalarını daha kolay yönetmenizi sağlar.