Ich möchte, dass mein Amazon Simple Storage Service (Amazon S3)-Bucket nur Objekte speichert, die mit einem AWS Key Management Service (AWS KMS)-Schlüssel aus meinem AWS-Konto verschlüsselt sind. Wie kann ich sicher sein, dass nur diese Objekte in meinen Bucket hochgeladen werden können?
Kurzbeschreibung
Verwende die Amazon-S3-Standardverschlüsselung, um sicherzustellen, dass Objekte, die ohne Verschlüsselungs-Header (wie x-amz-server-side-encryption und x-amz-server-side-encryption-aws-kms-key-id) hochgeladen wurden, von AWS KMS verschlüsselt werden, bevor sie in deinem S3-Bucket gespeichert werden. Verwende dann die Bucket-Richtlinie, um sicherzustellen, dass Objekte mit einer anderen Verschlüsselungseinstellung (AES-256) nicht hochgeladen werden können und dass Objekte, die mit der AWS-KMS-Verschlüsselung hochgeladen wurden, eine Schlüssel-ID aus deinem AWS-Konto enthalten.
Hinweis: Um ein mit einem AWS-KMS-Schlüssel verschlüsseltes Objekt hochzuladen, müssen sich der Schlüssel und der S3-Bucket in derselben AWS-Region befinden.
Lösung
Amazon-S3-Standardverschlüsselung
Gehe wie folgt vor, um die Amazon-S3-Standardverschlüsselung deines Buckets mithilfe der Amazon-S3-Konsole auf AWS KMS einzustellen:
- Öffne die Amazon S3-Konsole.
- Wähle den Bucket aus, den du für Objekte verwenden möchtest, die mit AWS KMS verschlüsselt wurden.
- Wähle die Ansicht Eigenschaften aus.
- Wähle Standardverschlüsselung und dann AWSKMS aus.
- Wähle Speichern aus.
Hinweis: Informationen zur Aktivierung der Amazon-S3-Standardverschlüsselung mithilfe der REST-API, der AWS Command Line Interface (AWS CLI) oder eines AWS-SDK findest du unter Konfiguration der Standardverschlüsselung.
Bucket-Richtlinie
Gehe wie folgt vor, um deine Bucket-Richtlinie so zu konfigurieren, dass Upload-Anfragen abgelehnt werden, die entweder eine andere Verschlüsselungseinstellung (AES-256) verwenden oder die die AWS-KMS-Verschlüsselung verwenden, aber eine Schlüssel-ID enthalten, die nicht von deinem AWS-Konto stammt:
- Öffne die Amazon S3-Konsole.
- Wähle den Bucket aus, den du für Objekte verwenden möchtest, die mit AWS KMS verschlüsselt wurden.
- Wähle die Ansicht Berechtigungen aus.
- Wähle Bucket-Richtlinie aus.
- Gib eine Bucket-Richtlinie ein, die der folgenden ähnelt:
Hinweis: Ersetze samplebucketname durch den Namen deines Buckets und us-east-1:111122223333 durch die richtige AWS-Region und deine AWS-Konto-ID.
{
"Version": "2012-10-17",
"Id": "PutObjPolicy",
"Statement": [
{
"Sid": "DenySSE-S3",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::samplebucketname/*",
"Condition": {
"StringEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
}
},
{
"Sid": "RequireKMSEncryption",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::samplebucketname/*",
"Condition": {
"StringNotLikeIfExists": {
"s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/*"
}
}
}
]
}
Ähnliche Informationen
So verwendet Amazon Simple Storage Service (Amazon S3) AWS KMS