Direkt zum Inhalt

Wie kann ich meinen S3-Bucket so konfigurieren, dass nur Objekte gespeichert werden, die mit meinem KMS-Schlüssel verschlüsselt wurden?

Lesedauer: 2 Minute
0

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:

  1. Öffne die Amazon S3-Konsole.
  2. Wähle den Bucket aus, den du für Objekte verwenden möchtest, die mit AWS KMS verschlüsselt wurden.
  3. Wähle die Ansicht Eigenschaften aus.
  4. Wähle Standardverschlüsselung und dann AWSKMS aus.
  5. 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:

  1. Öffne die Amazon S3-Konsole.
  2. Wähle den Bucket aus, den du für Objekte verwenden möchtest, die mit AWS KMS verschlüsselt wurden.
  3. Wähle die Ansicht Berechtigungen aus.
  4. Wähle Bucket-Richtlinie aus.
  5. 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

AWS OFFICIALAktualisiert vor einem Jahr