So verwendet AWS Systems Manager Parameter Store AWS KMS - AWS Key Management Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

So verwendet AWS Systems Manager Parameter Store AWS KMS

Mit AWS Systems Manager Parameter Store können Sie sichere Zeichenkettenparameter erstellen. Dabei handelt es sich um Parameter, die einen Klartext-Parameternamen und einen verschlüsselten Parameterwert haben. Parameter Store wird verwendet AWS KMS , um die Parameterwerte von sicheren Zeichenkettenparametern zu verschlüsseln und zu entschlüsseln.

Mit Parameter Store können Sie Daten als Parameter mit Werten erstellen, speichern und verwalten. Sie können einen Parameter in Parameter Store erstellen und in mehreren Anwendungen und Services verwenden, die den von Ihnen entworfenen Richtlinien und Berechtigungen unterliegen. Wenn Sie einen Parameterwert ändern müssen, ändern Sie nur eine Instance, anstatt fehleranfällige Änderungen an verschiedenen Quellen durchzuführen. Parameter Store unterstützt eine hierarchische Struktur für Parameternamen, sodass Sie einen Parameter für spezielle Zwecke qualifizieren können.

Um vertrauliche Daten zu verwalten, können Sie sichere Stringparameter generieren. Parameter Store verschlüsselt AWS KMS keys die Parameterwerte von sicheren Zeichenkettenparametern, wenn Sie sie erstellen oder ändern. Außerdem werden KMS Schlüssel verwendet, um die Parameterwerte zu entschlüsseln, wenn Sie auf sie zugreifen. Sie können den Von AWS verwalteter Schlüssel verwenden, den Parameter Store für Ihr Konto erstellt, oder Ihren eigenen kundenverwalteten Schlüssel angeben.

Wichtig

Parameter Store unterstützt nur symmetrische Schlüssel KMS. Sie können keinen asymmetrischen KMS Schlüssel verwenden, um Ihre Parameter zu verschlüsseln. Hilfe bei der Bestimmung, ob ein KMS Schlüssel symmetrisch oder asymmetrisch ist, finden Sie unter. Identifizieren Sie verschiedene Schlüsseltypen

Parameter Store unterstützt zwei Stufen von sicheren Stringparametern: Standard und Advanced. Standardparameter, die 4096 Byte nicht überschreiten dürfen, werden direkt unter dem von Ihnen angegebenen KMS Schlüssel ver- und entschlüsselt. Zum Verschlüsseln und Entschlüsseln von sicheren Advanced-Stringparametern verwendet Parameter Store Envelope-Verschlüsselung mit dem AWS Encryption SDK. Es ist möglich, einen sicheren Standard-Stringparameter in einen Advanced-Parameter zu konvertieren, aber nicht einen Advanced Parameter in einen Standard-Parameter. Weitere Informationen zum Unterschied zwischen standardmäßigen und erweiterten sicheren Zeichenkettenparametern finden Sie im AWS Systems Manager Benutzerhandbuch unter About Systems Manager Advanced Parameters.

Schützen von sicheren Standard-String-Parametern

Parameter Store führt keine kryptografischen Operationen durch. Stattdessen wird auf AWS KMS die Verschlüsselung und Entschlüsselung von Parameterwerten für sichere Zeichenketten zurückgegriffen. Wenn Sie einen standardmäßigen Parameterwert für eine sichere Zeichenfolge erstellen oder ändern, ruft Parameter Store den Vorgang AWS KMS Encrypt auf. Dieser Vorgang verwendet einen symmetrischen KMS Verschlüsselungsschlüssel direkt, um den Parameterwert zu verschlüsseln, anstatt den KMS Schlüssel zum Generieren eines Datenschlüssels zu verwenden.

Sie können den KMS Schlüssel auswählen, den Parameter Store zum Verschlüsseln des Parameterwerts verwendet. Wenn Sie keinen KMS Schlüssel angeben, verwendet Parameter Store den Von AWS verwalteter Schlüssel , den Systems Manager automatisch in Ihrem Konto erstellt. Dieser KMS Schlüssel hat den aws/ssm Alias.

Um den aws/ssm KMS Standardschlüssel für Ihr Konto anzuzeigen, verwenden Sie den DescribeKeyVorgang in der AWS KMS API. Im folgenden Beispiel wird der describe-key Befehl in der AWS Command Line Interface (AWS CLI) mit dem aws/ssm Aliasnamen verwendet.

aws kms describe-key --key-id alias/aws/ssm

Verwenden Sie die PutParameterOperation im Systems Manager, um einen standardmäßigen sicheren Zeichenkettenparameter zu erstellenAPI. Lassen Sie den Parameter Tier weg oder geben Sie als Wert Standard ein,wobei es sich um den Standardwert handelt. Schließen Sie einen Type-Parameter mit einem Wert von SecureString ein. Verwenden Sie den KeyId Parameter, um einen KMS Schlüssel anzugeben. Die Standardeinstellung ist Von AWS verwalteter Schlüssel für Ihr Konto,aws/ssm.

Parameter Store ruft dann die AWS KMS Encrypt Operation mit dem KMS Schlüssel und dem Klartext-Parameterwert auf. AWS KMS gibt den verschlüsselten Parameterwert zurück, den Parameter Store zusammen mit dem Parameternamen speichert.

Das folgende Beispiel verwendet den Put-Parameter-Befehl von Systems Manager und seinen --type Parameter in, AWS CLI um einen sicheren Zeichenkettenparameter zu erstellen. Da der Befehl die optionalen --key-id Parameter --tier und auslässt, erstellt Parameter Store einen standardmäßigen sicheren Zeichenfolgenparameter und verschlüsselt ihn unter dem Von AWS verwalteter Schlüssel

aws ssm put-parameter --name MyParameter --value "secret_value" --type SecureString

Im folgenden ähnlichen Beispiel wird der --key-id-Parameter zur Angabe eines kundenverwalteten Schlüssels verwendet. In dem Beispiel wird eine KMS Schlüssel-ID verwendet, um den KMS Schlüssel zu identifizieren, aber Sie können jeden gültigen KMS Schlüsselbezeichner verwenden. Da der Befehl den Tier-Parameter (--tier) weglässt, erstellt Parameter Store einen sicheren Standard-Stringparameter und keinen Advanced.

aws ssm put-parameter --name param1 --value "secret" --type SecureString --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

Wenn Sie einen sicheren Stringparameter von Parameter Store erhalten, ist dessen Wert verschlüsselt. Verwenden Sie die GetParameter Operation im Systems Manager, um einen Parameter abzurufenAPI.

Im folgenden Beispiel wird der Systems Manager Manager-Befehl get-parameter in verwendet AWS CLI , um den MyParameter Parameter aus dem Parameter Store abzurufen, ohne seinen Wert zu entschlüsseln.

$ aws ssm get-parameter --name MyParameter { "Parameter": { "Type": "SecureString", "Name": "MyParameter", "Value": "AQECAHgnOkMROh5LaLXkA4j0+vYi6tmM17Lg/9E464VRo68cvwAAAG8wbQYJKoZIhvcNAQcGoGAwXgIBADBZBgkqhkiG9w0BBwEwHgYJYZZIAWUDBAEuMBEEDImYOw44gna0Jm00hAIBEIAsjgr7mum1EnnXzE3xM8bGle0oKYcfVCHtBkfjIeZGTgL6Hg0fSDnpMHdcSXY=" } }

Zum Entschlüsseln des Parameterwerts vor der Rückgabe setzen Sie den WithDecryption-Parameter GetParameter auf true. Wenn Sie dies verwendenWithDecryption, ruft Parameter Store in Ihrem Namen den Vorgang AWS KMS Decrypt auf, um den Parameterwert zu entschlüsseln. Infolgedessen gibt die GetParameter-Anforderung den Parameter mit einem Klartext-Parameterwert zurück, wie im folgenden Beispiel gezeigt.

$ aws ssm get-parameter --name MyParameter --with-decryption { "Parameter": { "Type": "SecureString", "Name": "MyParameter", "Value": "secret_value" } }

Der folgende Workflow zeigt, wie Parameter Store einen KMS Schlüssel verwendet, um einen standardmäßigen sicheren Zeichenkettenparameter zu verschlüsseln und zu entschlüsseln.

Verschlüsseln eines Standardparameters

  1. Wenn Sie PutParameter verwenden, um einen sicheren Stringparameter zu erstellen, sendet Parameter Store eine Encrypt-Anforderung an AWS KMS. Diese Anforderung umfasst den Klartext-Parameterwert, den von Ihnen ausgewählten KMS Schlüssel und den Parameter Store-Verschlüsselungskontext. Während der Übertragung an AWS KMS wird der Klartextwert im sicheren Zeichenkettenparameter durch Transport Layer Security () TLS geschützt.

  2. AWS KMS verschlüsselt den Parameterwert mit dem angegebenen KMS Schlüssel und Verschlüsselungskontext. Der Chiffretext wird an Parameter Store zurückgegeben. Dort werden der Parametername und dessen verschlüsselter Wert gespeichert.

    Verschlüsseln eines sicheren Standard-Stringparameter-Werts

Entschlüsseln eines Standardparameters

  1. Wenn Sie den WithDecryption-Parameter in eine GetParameter-Anforderung einschließen, sendet Parameter Store eine Decrypt-Anforderung an AWS KMS mit dem verschlüsselten Wert des sicheren Stringparameters.

  2. AWS KMS verwendet denselben KMS Schlüssel und den angegebenen Verschlüsselungskontext, um den verschlüsselten Wert zu entschlüsseln. Es gibt den Klartext-Parameterwert (entschlüsselt) an Parameter Store zurück. Während der Übertragung werden die Klartextdaten durch geschützt. TLS

  3. Parameter Store gibt den Klartext-Parameterwert an Sie in der GetParameter-Antwort zurück.

Schützen von sicheren erweiterten String-Parametern

Wenn Sie einen erweiterten sicheren Zeichenkettenparameter erstellen, verwendet Parameter Store eine Umschlagverschlüsselung mit dem AWS Encryption SDK und eine symmetrische Verschlüsselung, um den Parameterwert AWS KMS key zu schützen. PutParameter Jeder erweiterte Parameterwert wird mit einem eindeutigen Datenschlüssel verschlüsselt, und der Datenschlüssel wird unter einem KMS Schlüssel verschlüsselt. Sie können den Von AWS verwaltete Schlüssel für das Konto (aws/ssm) oder einen beliebigen kundenverwalteten Schlüssel verwenden.

Das AWS Encryption SDK ist eine clientseitige Open-Source-Bibliothek, mit der Sie Daten mithilfe von Branchenstandards und bewährten Methoden leichter verschlüsseln und entschlüsseln können. Sie wird auf mehreren Plattformen und in mehreren Programmiersprachen, einschließlich einer Befehlszeilenschnittstelle, unterstützt. In können Sie sich den Quellcode ansehen und zu seiner Entwicklung beitragen GitHub.

Für jeden sicheren Zeichenkettenparameterwert ruft Parameter Store den auf, AWS Encryption SDK um den Parameterwert mithilfe eines eindeutigen Datenschlüssels zu verschlüsseln, der AWS KMS generiert (GenerateDataKey). Der AWS Encryption SDK gibt eine verschlüsselte Nachricht, die den verschlüsselten Parameterwert und eine verschlüsselte Kopie des eindeutigen Datenschlüssels enthält, an Parameter Store zurück. Parameter Store speichert die gesamte verschlüsselte Nachricht im sicheren Stringparameter-Wert. Wenn Sie dann einen erweiterten sicheren Zeichenkettenparameterwert erhalten, verwendet Parameter Store den, AWS Encryption SDK um den Parameterwert zu entschlüsseln. Dazu ist ein Aufruf von erforderlich, AWS KMS um den verschlüsselten Datenschlüssel zu entschlüsseln.

Verwenden Sie den PutParameterVorgang im Systems Manager, um einen erweiterten sicheren Zeichenkettenparameter zu erstellenAPI. Stellen Sie den Wert des Parameters Tier auf Advanced ein. Schließen Sie einen Type-Parameter mit einem Wert von SecureString ein. Verwenden Sie den KeyId Parameter, um einen KMS Schlüssel anzugeben. Die Standardeinstellung ist Von AWS verwalteter Schlüssel für Ihr Konto,aws/ssm.

aws ssm put-parameter --name MyParameter --value "secret_value" --type SecureString --tier Advanced

Im folgenden ähnlichen Beispiel wird der --key-id-Parameter zur Angabe eines kundenverwalteten Schlüssels verwendet. Das Beispiel verwendet den Amazon-Ressourcennamen (ARN) des KMS Schlüssels, aber Sie können jede gültige KMS Schlüssel-ID verwenden.

aws ssm put-parameter --name MyParameter --value "secret_value" --type SecureString --tier Advanced --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Wenn Sie einen sicheren Zeichenkettenparameter von Parameter Store abrufen, ist sein Wert die verschlüsselte Nachricht, die AWS Encryption SDK zurückgegeben wurde. Verwenden Sie die GetParameter Operation im Systems Manager, um einen Parameter abzurufenAPI.

Das folgende Beispiel verwendet die Systems-Manager-Operation GetParameter zum Anfordern des MyParameter-Parameters von Parameter Store, ohne dessen Wert zu entschlüsseln.

$ aws ssm get-parameter --name MyParameter { "Parameter": { "Type": "SecureString", "Name": "MyParameter", "Value": "AQECAHgnOkMROh5LaLXkA4j0+vYi6tmM17Lg/9E464VRo68cvwAAAG8wbQYJKoZIhvcNAQcGoGAwXgIBADBZBgkqhkiG9w0BBwEwHgYJYZZIAWUDBAEuMBEEDImYOw44gna0Jm00hAIBEIAsjgr7mum1EnnXzE3xM8bGle0oKYcfVCHtBkfjIeZGTgL6Hg0fSDnpMHdcSXY=" } }

Zum Entschlüsseln des Parameterwerts vor der Rückgabe setzen Sie den WithDecryption-Parameter GetParameter auf true. Wenn Sie verwendenWithDecryption, ruft Parameter Store in Ihrem Namen den Vorgang AWS KMS Decrypt auf, um den Parameterwert zu entschlüsseln. Infolgedessen gibt die GetParameter-Anforderung den Parameter mit einem Klartext-Parameterwert zurück, wie im folgenden Beispiel gezeigt.

$ aws ssm get-parameter --name MyParameter --with-decryption { "Parameter": { "Type": "SecureString", "Name": "MyParameter", "Value": "secret_value" } }

Es ist nicht möglich, einen sicheren Advanced-Stringparameter in einen Standard-Parameter zu konvertieren, aber es ist möglich einen sicheren Standard-Stringparameter in einen Advanced-Parameter zu konvertieren. Um einen sicheren Standard-Stringparameter in einen sicheren Advanced-Stringparameter zu konvertieren, verwenden Sie die PutParameter-Operation mit dem Overwrite-Parameter. Type muss den Wert SecureString und Tier muss den Wert Advanced haben. Der KeyId-Parameter, der einen kundenverwalteten Schlüssel identifiziert, ist optional. Wenn Sie ihn weglassen, verwendet Parameter Store den Von AWS verwalteter Schlüssel für das Konto. Sie können jeden KMS Schlüssel angeben, zu dessen Verwendung der Prinzipal berechtigt ist, auch wenn Sie einen anderen KMS Schlüssel zum Verschlüsseln des Standardparameters verwendet haben.

Wenn Sie den Overwrite Parameter verwenden, verwendet Parameter Store den, AWS Encryption SDK um den Parameterwert zu verschlüsseln. Anschließend wird die neu verschlüsselte Nachricht in Parameter Store gespeichert.

$ aws ssm put-parameter --name myStdParameter --value "secret_value" --type SecureString --tier Advanced --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --overwrite

Der folgende Workflow zeigt, wie Parameter Store einen KMS Schlüssel verwendet, um einen erweiterten sicheren Zeichenkettenparameter zu verschlüsseln und zu entschlüsseln.

Verschlüsseln eines erweiterten Parameters

  1. Wenn Sie einen erweiterten sicheren Zeichenkettenparameter erstellen, verwendet Parameter Store das AWS Encryption SDK und, um den Parameterwert AWS KMS zu verschlüsseln. PutParameter Parameter Store ruft den AWS Encryption SDK mit dem Parameterwert, dem von Ihnen angegebenen KMS Schlüssel und dem Parameter Store-Verschlüsselungskontext auf.

  2. Der AWS Encryption SDK sendet eine GenerateDataKeyAnfrage AWS KMS mit der ID des von Ihnen angegebenen KMS Schlüssels und dem Parameter Store-Verschlüsselungskontext an. AWS KMS gibt zwei Kopien des eindeutigen Datenschlüssels zurück: eine im Klartext und eine unter dem KMS Schlüssel verschlüsselte Kopie. (Der Verschlüsselungskontext wird beim Verschlüsseln des Datenschlüssels verwendet.)

  3. Der AWS Encryption SDK verwendet den Klartext-Datenschlüssel, um den Parameterwert zu verschlüsseln. Es wird eine verschlüsselte Nachricht mit dem verschlüsselten Parameterwert, dem verschlüsselten Datenschlüssel und anderen Daten, einschließlich des Parameter-Store-Verschlüsselungskontextes, zurückgegeben.

  4. Parameter Store speichert die verschlüsselte Nachricht als Parameterwert.

    Verschlüsseln eines sicheren Advanced-Stringparameter-Werts

Entschlüsseln eines erweiterten Parameters

  1. Sie können den WithDecryption-Parameter in eine GetParameter-Anforderung einschließen, um einen sicheren Advanced-Stringparameter zu erhalten. In diesem Fall übergibt Parameter Store die verschlüsselte Nachricht aus dem Parameterwert an eine Entschlüsselungsmethode des AWS Encryption SDK.

  2. Das AWS Encryption SDK ruft die AWS KMS Decrypt-Operation auf. Es übergibt den verschlüsselten Datenschlüssel und den Parameter-Store-Verschlüsselungskontext aus der verschlüsselten Nachricht.

  3. AWS KMS verwendet den KMS Schlüssel und den Parameter Store-Verschlüsselungskontext, um den verschlüsselten Datenschlüssel zu entschlüsseln. Anschließend gibt die Operation den Klartext-Datenschlüssel (entschlüsselt) an das AWS Encryption SDK zurück.

  4. Der AWS Encryption SDK verwendet den Klartext-Datenschlüssel, um den Parameterwert zu entschlüsseln. Es gibt den Klartext-Parameterwert an Parameter Store zurück.

  5. Parameter Store überprüft den Verschlüsselungskontext und gibt den Klartext-Parameterwert in der GetParameter-Antwort an Sie zurück.

Festlegen der Berechtigungen zum Verschlüsseln und Entschlüsseln von Parameterwerten

Zum Verschlüsseln eines sicheren Standard-Stringparameter-Werts benötigt der Benutzer die kms:Encrypt-Berechtigung. Zum Verschlüsseln eines sicheren Advanced-Stringparameter-Werts benötigt der Benutzer die kms:GenerateDataKey-Berechtigung. Zum Entschlüsseln des sicheren Stringparameter-Werts beider Typen benötigt der Benutzer die kms:Decrypt-Berechtigung.

Sie können IAM Richtlinien verwenden, um einem Benutzer die Erlaubnis zu gewähren oder zu verweigern, den Systems Manager PutParameter und GetParameter Operations aufzurufen.

Wenn Sie vom Kunden verwaltete Schlüssel verwenden, um Ihre sicheren Zeichenkettenparameterwerte zu verschlüsseln, können Sie IAM Richtlinien und Schlüsselrichtlinien verwenden, um die Verschlüsselungs- und Entschlüsselungsberechtigungen zu verwalten. Sie können jedoch keine Zugriffskontrollrichtlinien für den Standardschlüssel einrichten. aws/ssm KMS Ausführliche Informationen zur Steuerung des Zugriffs auf kundenverwaltete Schlüssel finden Sie unter KMSSchlüsselzugriff und Berechtigungen.

Das folgende Beispiel zeigt eine IAM Richtlinie, die für standardmäßige sichere Zeichenkettenparameter konzipiert wurde. Sie ermöglicht dem Benutzer den Aufruf der Systems-Manager-Operation PutParameter für alle Parameter im Pfad FinancialParameters. Die Richtlinie ermöglicht es dem Benutzer auch, den AWS KMS Encrypt Vorgang mit einem vom Kunden verwalteten Beispielschlüssel aufzurufen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:us-west-2:111122223333:parameter/FinancialParameters/*" }, { "Effect": "Allow", "Action": [ "kms:Encrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }

Das nächste Beispiel zeigt eine IAM Richtlinie, die für erweiterte sichere Zeichenkettenparameter konzipiert ist. Sie ermöglicht dem Benutzer den Aufruf der Systems-Manager-Operation PutParameter für alle Parameter im Pfad ReservedParameters. Die Richtlinie ermöglicht es dem Benutzer auch, den AWS KMS GenerateDataKey Vorgang mit einem vom Kunden verwalteten Beispielschlüssel aufzurufen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:us-west-2:111122223333:parameter/ReservedParameters/*" }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }

Das letzte Beispiel zeigt auch eine IAM Richtlinie, die für standardmäßige oder erweiterte sichere Zeichenkettenparameter verwendet werden kann. Sie ermöglicht dem Benutzer den Aufruf der Systems-Manager-Operation GetParameter (und verwandte Operationen) für alle Parameter im Pfad ITParameters. Die Richtlinie ermöglicht es dem Benutzer auch, den AWS KMS Decrypt Vorgang mit einem vom Kunden verwalteten Beispielschlüssel aufzurufen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameter*" ], "Resource": "arn:aws:ssm:us-west-2:111122223333:parameter/ITParameters/*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }

Parameter-Store-Verschlüsselungskontext

Ein Verschlüsselungskontext ist eine Gruppe von Schlüssel/Wert-Paaren mit willkürlichen, nicht geheimen Daten. Wenn Sie einen Verschlüsselungskontext in eine Anfrage zur Datenverschlüsselung aufnehmen, wird der Verschlüsselungskontext AWS KMS kryptografisch an die verschlüsselten Daten gebunden. Zur Entschlüsselung der Daten müssen Sie denselben Verschlüsselungskontext übergeben.

Sie können den Verschlüsselungskontext auch nutzen, um eine kryptografische Operation in Audit-Datensätzen und -Protokollen zu identifizieren. Die Verschlüsselungskontext wird in Klartext-Protokollen wie AWS CloudTrail angezeigt.

Der benötigt AWS Encryption SDK ebenfalls einen Verschlüsselungskontext, der jedoch unterschiedlich behandelt wird. Parameter Store stellt den Verschlüsselungskontext für die Verschlüsselungsmethode bereit. Das AWS Encryption SDK bindet den Verschlüsselungskontext kryptographisch an die verschlüsselten Daten. Es schließt den Verschlüsselungskontext als Klartext im Header der von ihm zurückgegebenen verschlüsselten Nachricht ein. Im Gegensatz dazu AWS KMS verwenden die AWS Encryption SDK Entschlüsselungsmethoden jedoch keinen Verschlüsselungskontext als Eingabe. Stattdessen wird beim Entschlüsseln von Daten der Verschlüsselungskontext aus der verschlüsselten Nachricht AWS Encryption SDK abgerufen. Parameter Store überprüft den Verschlüsselungskontext und fügt den erwarteten Wert hinzu, bevor es den Klartext-Parameterwert an Sie zurückgibt.

Parameter Store verwendet den folgenden Verschlüsselungskontext in seinen kryptografischen Operationen:

  • Schlüssel: PARAMETER_ARN

  • Wert: Der Amazon-Ressourcenname (ARN) des Parameters, der verschlüsselt wird.

Das Format des Verschlüsselungskontexts sieht wie folgt aus:

"PARAMETER_ARN":"arn:aws:ssm:<REGION_NAME>:<ACCOUNT_ID>:parameter/<parameter-name>"

Beispielsweise bezieht Parameter Store diesen Verschlüsselungskontext in Aufrufe zum Verschlüsseln und Entschlüsseln des MyParameter Parameters in einem Beispiel AWS-Konto und einer Region ein.

"PARAMETER_ARN":"arn:aws:ssm:us-west-2:111122223333:parameter/MyParameter"

Befindet sich der Parameter in einem hierarchischen Parameter-Store-Pfad, sind sowohl der Pfad als auch der Name im Verschlüsselungskontext enthalten. Dieser Verschlüsselungskontext wird beispielsweise beim Verschlüsseln und Entschlüsseln des MyParameter Parameters im /ReadableParameters Pfad in einem Beispiel und einer Region verwendet. AWS-Konto

"PARAMETER_ARN":"arn:aws:ssm:us-west-2:111122223333:parameter/ReadableParameters/MyParameter"

Sie können einen verschlüsselten sicheren Zeichenkettenparameterwert entschlüsseln, indem Sie den AWS KMS Decrypt Vorgang mit dem richtigen Verschlüsselungskontext und dem verschlüsselten Parameterwert aufrufen, den der Systems Manager GetParameter Manager-Vorgang zurückgibt. Wir empfehlen jedoch, die Parameterwerte von Parameter Store mithilfe der GetParameter-Operation mit dem WithDecryption-Parameter zu entschlüsseln.

Sie können den Verschlüsselungskontext auch in eine IAM Richtlinie aufnehmen. So können Sie einen Benutzer beispielsweise nur dazu berechtigen, einen bestimmten Parameterwert oder eine bestimmte Gruppe von Parameterwerten zu entschlüsseln.

Die folgende IAM Beispiel-Richtlinienanweisung ermöglicht es dem Benutzer, den Wert des MyParameter Parameters abzurufen und seinen Wert mithilfe des angegebenen KMS Schlüssels zu entschlüsseln. Diese Berechtigungen gelten jedoch nur, wenn der Verschlüsselungskontext mit der angegebenen Zeichenfolge übereinstimmt. Diese Berechtigungen gelten nicht für andere Parameter oder KMS Schlüssel, und der Aufruf von GetParameter schlägt fehl, wenn der Verschlüsselungskontext nicht mit der Zeichenfolge übereinstimmt.

Bevor Sie eine Richtlinienaussage wie diese verwenden, ersetzen Sie das Beispiel ARNs durch gültige Werte.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameter*" ], "Resource": "arn:aws:ssm:us-west-2:111122223333:parameter/MyParameter" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringEquals": { "kms:EncryptionContext:PARAMETER_ARN":"arn:aws:ssm:us-west-2:111122223333:parameter/MyParameter" } } } ] }

Behebung KMS wichtiger Probleme im Parameter Store

Um eine Operation mit einem sicheren Zeichenkettenparameter ausführen zu können, muss Parameter Store in der Lage sein, den AWS KMS KMS Schlüssel zu verwenden, den Sie für den gewünschten Vorgang angeben. Die meisten Fehler im Zusammenhang mit KMS Schlüsseln im Zusammenhang mit dem Parameterspeicher werden durch die folgenden Probleme verursacht:

  • Die Anmeldeinformationen, die eine Anwendung verwendet, sind nicht berechtigt, die angegebene Aktion für den KMS Schlüssel auszuführen.

    Um diesen Fehler zu beheben, führen Sie die Anwendung mit anderen Anmeldeinformationen aus oder ändern Sie die IAM oder die Schlüsselrichtlinie, die den Vorgang verhindert. Hilfe AWS KMS IAM und wichtige Richtlinien finden Sie unterKMSSchlüsselzugriff und Berechtigungen.

  • Der KMS Schlüssel wurde nicht gefunden.

    Dies ist in der Regel der Fall, wenn Sie eine falsche Kennung für den KMS Schlüssel verwenden. Suchen Sie nach den richtigen Bezeichnern für den KMS Schlüssel und versuchen Sie es erneut mit dem Befehl.

  • Der KMS Schlüssel ist nicht aktiviert. In diesem Fall gibt Parameter Store eine InvalidKeyIdAusnahme mit einer detaillierten Fehlermeldung von zurück AWS KMS. Wenn der KMS Schlüsselstatus lautetDisabled, aktivieren Sie ihn. Wenn der Status Pending Import lautet, führen Sie das Importverfahren durch. Wenn der Schlüsselstatus lautetPending Deletion, brechen Sie das Löschen des Schlüssels ab oder verwenden Sie einen anderen KMS Schlüssel.

    Verwenden Sie die DescribeKeyOperation, um den KMSSchlüsselstatus eines Schlüssels zu ermitteln.