Muss ich den AWS KMS-Schlüssel angeben, wenn ich ein KMS-verschlüsseltes Objekt von Amazon S3 herunterlade?

Lesedauer: 3 Minute
0

Ich möchte gespeicherte Objekte von Amazon Simple Storage Service (Amazon S3) herunterladen, die serverseitige Verschlüsselung mit vom AWS Key Management Service verwalteten Schlüsseln (SSE-KMS) verwenden.

Behebung

Sie müssen die Schlüssel-ID des AWS Key Management Service (AWS KMS) nicht angeben, wenn Sie ein SSE-KMS-verschlüsseltes Objekt aus einem S3-Bucket herunterladen. Stattdessen benötigen Sie die Erlaubnis, den AWS-KMS-Schlüssel zu entschlüsseln.

Wenn ein Benutzer eine GET-Anfrage sendet, muss Amazon S3 nach der entsprechenden Autorisierung suchen. Amazon S3 prüft, ob der Benutzer oder die Rolle von AWS Identity and Access Management (IAM), der die Anfrage gesendet hat, autorisiert ist, den Schlüssel des Objekts zu entschlüsseln. Wenn der IAM-Benutzer oder die IAM-Rolle und der Schlüssel zu demselben AWS-Konto gehören, müssen Entschlüsselungsberechtigungen gemäß der Schlüsselrichtlinie erteilt werden.

Hinweis: Wenn sich der IAM-Benutzer oder die IAM-Rolle und der KMS-Schlüssel in demselben Konto befinden, können Sie den Zugriff auf den Schlüssel mithilfe von IAM-Richtlinien steuern. Sie müssen jedoch die Schlüsselrichtlinie ändern, um die IAM-Richtlinien explizit zu aktivieren, um den Zugriff auf den Schlüssel zu ermöglichen. Weitere Informationen finden Sie unter Verwenden von IAM-Richtlinien mit AWS KMS.

Wenn der IAM-Benutzer oder die Rolle und der Schlüssel zu unterschiedlichen Konten gehören, müssen Sie Entschlüsselungsberechtigungen gemäß der IAM-Benutzerrichtlinie und der Schlüsselrichtlinie gewähren.

Im Folgenden finden Sie ein Beispiel für eine IAM-Richtlinie, die es dem Benutzer ermöglicht, sowohl den AWS-KMS-Schlüssel zu entschlüsseln als auch ihn aus dem S3-Bucket herunterzuladen:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:kms:example-region-1:123456789012:key/example-key-id",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ]
    }
  ]
}

Im Folgenden finden Sie ein Beispiel für eine Schlüsselrichtlinie, die es dem Benutzer ermöglicht, den Schlüssel zu entschlüsseln:

{
  "Sid": "Allow decryption of the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::123456789012:user/Bob"
    ]
  },
  "Action": [
    "kms:Decrypt"
  ],
  "Resource": "*"
}

Hinweis:Für IAM-Benutzer oder -Rollen, die zu einem anderen Konto als dem Bucket gehören, muss die Bucket-Richtlinie dem Benutzer auch Zugriff auf Objekte gewähren. Wenn der Benutzer beispielsweise aus dem Bucket herunterladen muss, muss der Benutzer über die Berechtigung für die Aktions3:getObject in der Bucket-Richtlinie verfügen.

Nachdem Sie die Berechtigung zum Entschlüsseln des Schlüssels erhalten haben, können Sie mit dem Schlüssel verschlüsselte S3-Objekte über die AWS-Befehlszeilenschnittstelle (AWS CLI) herunterladen. Führen Sie einen Befehl ähnlich dem folgenden aus:

aws s3api get-object --bucket DOC-EXAMPLE-BUCKET --key dir/example-object-name example-object-name

**Hinweis:**Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.

Weitere Informationen

GetObject

get-object

Schutz von Daten mithilfe serverseitiger Verschlüsselung mit CMKs, die im AWS Key Management Service (SSE-KMS) gespeichert sind

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr