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.
Themen
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
-
Wenn Sie
PutParameter
verwenden, um einen sicheren Stringparameter zu erstellen, sendet Parameter Store eineEncrypt
-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. -
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.
Entschlüsseln eines Standardparameters
-
Wenn Sie den
WithDecryption
-Parameter in eineGetParameter
-Anforderung einschließen, sendet Parameter Store eineDecrypt
-Anforderung an AWS KMS mit dem verschlüsselten Wert des sicheren Stringparameters. -
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
-
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
-
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. -
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.)
-
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.
-
Parameter Store speichert die verschlüsselte Nachricht als Parameterwert.
Entschlüsseln eines erweiterten Parameters
-
Sie können den
WithDecryption
-Parameter in eineGetParameter
-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. -
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.
-
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.
-
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.
-
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
InvalidKeyId
Ausnahme mit einer detaillierten Fehlermeldung von zurück AWS KMS. Wenn der KMS Schlüsselstatus lautetDisabled
, aktivieren Sie ihn. Wenn der StatusPending 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.