Warum kann ich keine große Datei mit der AWS-KMS-Schlüsselverschlüsselung auf Amazon S3 hochladen?

Lesedauer: 3 Minute
0

Ich möchte eine große Datei in meinen Amazon Simple Storage Service (Amazon S3)-Bucket hochladen. In meiner Upload-Anfrage füge ich Verschlüsselungsinformationen mit einem AWS Key Management Service (AWS KMS)-Schlüssel hinzu. Ich erhalte jedoch die Fehlermeldung Zugriff verweigert.

Kurzbeschreibung

Bestätigen Sie, dass Sie berechtigt sind, kms:Decrypt-Aktionen für den AWS-KMS-Schlüssel auszuführen, den Sie zum Verschlüsseln des Objekts verwenden.

Bei großen Dateien führen AWS-S3-Befehle auf hoher Ebene mit der AWS-Befehlszeilenschnittstelle (AWS CLI), AWS-SDKs und vielen Programmen von Drittanbietern automatisch einen mehrteiligen Upload durch. Um einen AWS-KMS-Schlüssel zum Verschlüsseln eines mehrteiligen Uploads zu verwenden, benötigen Sie die Berechtigungen kms:GenerateDataKey und kms:Decrypt. Mit den Berechtigungen kms:GenerateDataKey können Sie den Upload initiieren. Mit den Berechtigungen kms:Decrypt können Sie neu hochgeladene Teile mit dem Schlüssel verschlüsseln, den Sie für frühere Teile desselben Objekts verwendet haben.

Hinweis: Um einen mehrteiligen Upload mit Verschlüsselung mithilfe eines AWS-KMS-Schlüssels durchzuführen, müssen Sie über Folgendes verfügen:

  • Berechtigung für die Aktionen kms:Decrypt und kms:GenerateDataKey für den Schlüssel.
  • Berechtigungen für die Aktion kms:GenerateDataKey für die CreateMultipartUpload-API.
  • Berechtigungen für die Aktion kms:Decrypt für die UploadPart- und UploadPartCopy-APIs. Diese Berechtigungen sind erforderlich, da Amazon S3 Daten aus den verschlüsselten Dateiteilen entschlüsseln und lesen muss, bevor der mehrteilige Upload abgeschlossen ist.

Wenn sich Ihr AWS Identity and Access Management (IAM)-Benutzer oder Ihre Rolle im selben AWS-Konto wie der KMS-Schlüssel befindet, müssen Sie über diese Berechtigungen für die Schlüsselrichtlinie verfügen. Wenn Ihr IAM-Benutzer oder Ihre IAM-Rolle zu einem anderen Konto gehört als der KMS-Schlüssel, müssen Sie sowohl über die Berechtigungen für die Schlüsselrichtlinie als auch für Ihren IAM-Benutzer oder Ihre IAM-Rolle verfügen.

Behebung

Schlüsselrichtlinie

Überprüfen Sie die AWS-KMS-Schlüsselrichtlinie mithilfe der Richtlinienansicht der AWS-Managementkonsole.

Suchen Sie in der Schlüsselrichtlinie nach Aussagen, in denen die Amazon-Ressourcennummer (ARN) Ihres IAM-Benutzers oder Ihrer IAM-Rolle als AWS-Prinzipal aufgeführt ist. Der ARN hat das Format: arn:aws:iam::111122223333:user/john.

Überprüfen Sie dann die Liste der Aktionen, die Ihre IAM-Benutzer- oder -Rollenanweisungen zulassen. Für mehrteilige Uploads muss die Liste der erlaubten Aktionen kms:Decrypt with SSE-KMS enthalten.

Diese Anweisung in einer Schlüsselrichtlinie ermöglicht es dem Benutzer John beispielsweise, die Aktionen kms:Decrypt und kms:GenerateDataKey auszuführen:

{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/john"
  },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey"
  ],
  "Resource": "*"
}

IAM-Berechtigungen

Um Ihre IAM-Berechtigungen zu überprüfen, öffnen Sie die IAM-Konsole und dann Ihren IAM-Benutzer oder Ihre IAM-Rolle.

Sehen Sie sich die Liste der Berechtigungsrichtlinien an, die auf Ihren IAM-Benutzer oder Ihre IAM-Rolle angewendet wurden. Stellen Sie sicher, dass eine Richtlinie angewendet wurde, die es Ihnen ermöglicht, die Aktion kms:Decrypt für den Schlüssel auszuführen, der zum Verschlüsseln des Objekts verwendet wurde:

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Decrypt",
      "kms:GenerateDataKey"
    ],
    "Resource": [
      "arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
    ]
  }
}

Die Beispielanweisung gewährt dem IAM-Benutzer Zugriff, um kms:Decrypt und kms:GenerateDataKey auf dem Schlüssel arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd auszuführen.

Anweisungen zum Aktualisieren Ihrer IAM-Berechtigungen finden Sie unter Ändern der Berechtigungen für einen IAM-Benutzer.

Ähnliche Informationen

AWS-Richtliniengenerator

Datenverschlüsselung in Amazon S3