Ich versuche, einen KMS-Schlüsselalias in einer Bucket-Richtlinie zu verwenden

Ich versuche, einen KMS-Schlüsselalias in einer Bucket-Richtlinie zu verwenden

Ich verwende die folgende Bucket-Richtlinie:

{ "Version": "2012-10-17", "Id": "Policy1566337631537", "Statement": [ { "Sid": "Stmt156", "Effect": "Ablehnen", "Principal": "", "Aktion": "s3:PutObject", "Ressource": "arn:aws:s3:::jmalacho-test-bucket23/*", "Bedingung": { "StringNotEquals": { "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-2:123456789012:alias/ExampleAlias" } } } ] }

Wenn ich dann versuche, eine Datei über die CLI hochzuladen, erhalte ich die Fehlermeldung „Zugriff verweigert“.

aws s3 cp notes.txt s3://jmalacho-test-bucket23/notes.txt --sse aws:kms --sse-kms-key-id alias/BeispielAlias

Wenn ich die Schlüssel-ID ARN verwende, funktioniert die Richtlinie. Ist es nicht möglich, einen Schlüsselalias in einer Bucket-Richtlinie zu verwenden?

Danke

Antwort1

Aus der Dokumentation geht hervor, dass dies nicht möglich ist.

Amazon S3 unterstützt auch den s3:x-amz-server-side-encryption-aws-kms-key-idBedingungsschlüssel, mit dem Sie einen bestimmten KMS-Schlüssel für die Objektverschlüsselung anfordern können. Der KMS-Schlüssel, den Sie in der Richtlinie angeben, muss das arn:aws:kms:region:acct-id:key/key-idFormat verwenden.

https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html

Ein Alias ​​wäre nicht mit dem oben erwähnten Konzept vereinbar, „einen bestimmten KMS-Schlüssel“ zu erfordern, da ein Alias ​​sich nicht auf einen bestimmten Schlüssel bezieht, außer vorübergehend, während der Alias ​​zufällig auf den Schlüssel zeigt.

Auch:

Sie können einen Alias ​​als Wert des KeyId-Parameters nur in den folgenden Vorgängen verwenden:

  • DescribeKey

  • Encrypt

  • GenerateDataKey

  • GenerateDataKeyWithoutPlaintext

  • ReEncrypt

https://docs.aws.amazon.com/kms/latest/developerguide/programming-aliases.html

verwandte Informationen