Warum kann ich keine große Datei mit der AWS-KMS-Schlüsselverschlüsselung auf Amazon S3 hochladen?
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 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: Nachdem Sie alle Teile hochgeladen haben, müssen Sie die hochgeladenen Teile zusammenbauen, um den mehrteiligen Upload-Vorgang abzuschließen. Da die hochgeladenen Teile serverseitig mit einem AWS-KMS-Schlüssel verschlüsselt sind, müssen Sie Objektteile entschlüsseln, bevor Sie die Teile zusammenbauen können. Daher benötigen Sie kms:Decrypt-Berechtigungen für mehrteilige Upload-Anfragen, die serverseitige Verschlüsselung mit AWS-KMS-Schlüsseln (SSE-KMS) verwenden.
Behebung
Ihre Rolle und Ihr Schlüssel für AWS Identitäts- und Zugriffsmanagement (Identity and Access Management) (IAM) sind möglicherweise in demselben AWS-Konto oder in verschiedenen Konten vorhanden. Wenn sich Ihre IAM-Rolle und Ihr Schlüssel in demselben Konto befinden, können Sie kms:Decrypt-Berechtigungen aus einer IAM-Richtlinie oder einer AWS-KMS-Schlüsselrichtlinie angeben. Wenn sich Ihre IAM-Rolle und Ihr Schlüssel in unterschiedlichen Konten befinden, müssen Sie die Berechtigungen kms:Decrypt sowohl im Schlüssel als auch in der IAM-Richtlinie angeben.
Schlüsselrichtlinie
Suchen Sie in der Schlüsselrichtlinie nach Aussagen, in denen der Amazon-Ressourcenname (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" ] } }
Diese 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 Berechtigungen für einen IAM-Benutzer ändern.
Ähnliche Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 8 Monaten
- AWS OFFICIALAktualisiert vor 6 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr