Arbeiten mit Schlüsselrichtlinien - 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.

Arbeiten mit Schlüsselrichtlinien

Die Beispiele in diesem Thema verwenden die AWS KMS-API zum Anzeigen und Ändern der Schlüsselrichtlinien von AWS KMS keys.

Weitere Informationen zum Verwenden von Schlüsselrichtlinien, IAM-Richtlinien und Erteilungen, um den Zugriff auf Ihre KMS-Schlüssel zu verwalten, finden Sie unter Authentifizierung und Zugriffskontrolle für AWS KMS. Hilfe beim Schreiben und Formatieren eines JSON-Richtliniendokuments finden Sie in der IAM-JSON-Richtlinienreferenz im IAM-Benutzerhandbuch.

Auflisten der Namen von Schlüsselrichtlinien

Um die Namen der Schlüsselrichtlinien für einen abzurufenAWS KMS key, verwenden Sie die -ListKeyPoliciesOperation. default ist der einzige Schlüsselrichtlinienname, der zurückgegeben wird.

In Sprachen, für die ein Client-Objekt erforderlich ist, verwenden diese Beispiele das AWS KMS-Client-Objekt, das Sie in Erstellen eines Clients erstellt haben.

Java

Weitere Informationen zur Java-Implementierung finden Sie in der -listKeyPolicies Methode in der APIAWS SDK for Java-Referenz zu .

// List key policies // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; ListKeyPoliciesRequest req = new ListKeyPoliciesRequest().withKeyId(keyId); ListKeyPoliciesResult result = kmsClient.listKeyPolicies(req);
C#

Weitere Informationen finden Sie in der Beschreibung der ListKeyPolicies encrypt-Methode im AWS SDK for .NET.

// List key policies // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; ListKeyPoliciesRequest listKeyPoliciesRequest = new ListKeyPoliciesRequest() { KeyId = keyId }; ListKeyPoliciesResponse listKeyPoliciesResponse = kmsClient.ListKeyPolicies(listKeyPoliciesRequest);
Python

Weitere Informationen finden Sie in der Beschreibung der list_key_policiesencrypt-Methode im AWS SDK for Python (Boto3).

# List key policies # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.list_key_policies( KeyId=key_id )
Ruby

Weitere Informationen finden Sie unter der list_key_policies-Instance-Methode encrypt im AWS SDK for Ruby.

# List key policies # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.list_key_policies({ key_id: key_id })
PHP

Weitere Informationen finden Sie in der Beschreibung der ListKeyPoliciesencrypt-Methode im AWS SDK for PHP.

// List key policies // // Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->listKeyPolicies([ 'KeyId' => $keyId ]);
Node.js

Weitere Informationen finden Sie unter der -listKeyPolicies Eigenschaft im AWS -SDK für JavaScript in Node.js .

// List key policies // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.listKeyPolicies({ KeyId }, (err, data) => { ... });
PowerShell

Um den Namen der Standard-Schlüsselrichtlinie aufzulisten, verwenden Sie das Get-KMSKeyPolicyList-Cmdlet.

# List key policies # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' $response = Get-KMSKeyPolicyList -KeyId $keyId

Um die AWS KMS PowerShell Cmdlets zu verwenden, installieren Sie das AWS.Tools.KeyManagementService-Modul. Weitere Informationen finden Sie im AWS Tools for Windows PowerShell-Benutzerhandbuch.

Abrufen einer Schlüsselrichtlinie

Um die Schlüsselrichtlinie für einen abzurufenAWS KMS key, verwenden Sie die -GetKeyPolicyOperation.

GetKeyPolicy erfordert einen Richtliniennamen. default ist der einzige gültige Richtlinienname.

In Sprachen, für die ein Client-Objekt erforderlich ist, verwenden diese Beispiele das AWS KMS-Client-Objekt, das Sie in Erstellen eines Clients erstellt haben.

Java

Weitere Informationen finden Sie in der -getKeyPolicy Methode in der APIAWS SDK for Java-Referenz zu .

// Get the policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; String policyName = "default"; GetKeyPolicyRequest req = new GetKeyPolicyRequest().withKeyId(keyId).withPolicyName(policyName); GetKeyPolicyResult result = kmsClient.getKeyPolicy(req);
C#

Weitere Informationen finden Sie in der Beschreibung der GetKeyPolicy encrypt-Methode im AWS SDK for .NET.

// Get the policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; String policyName = "default"; GetKeyPolicyRequest getKeyPolicyRequest = new GetKeyPolicyRequest() { KeyId = keyId, PolicyName = policyName }; GetKeyPolicyResponse getKeyPolicyResponse = kmsClient.GetKeyPolicy(getKeyPolicyRequest);
Python

Weitere Informationen finden Sie in der Beschreibung der get_key_policyencrypt-Methode im AWS SDK for Python (Boto3).

# Get the policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' policy_name = 'default' response = kms_client.get_key_policy( KeyId=key_id, PolicyName=policy_name )
Ruby

Weitere Informationen finden Sie unter der get_key_policy-Instance-Methode encrypt im AWS SDK for Ruby.

# Get the policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' policy_name = 'default' response = kmsClient.get_key_policy({ key_id: key_id, policy_name: policy_name })
PHP

Weitere Informationen finden Sie in der Beschreibung der GetKeyPolicy encrypt-Methode im AWS SDK for PHP.

// Get the policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $policyName = "default"; $result = $KmsClient->getKeyPolicy([ 'KeyId' => $keyId, 'PolicyName' => $policyName ]);
Node.js

Weitere Informationen finden Sie in der -getKeyPolicy Eigenschaft im AWS -SDK für JavaScript in Node.js .

// Get the policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; const PolicyName = 'default'; kmsClient.getKeyPolicy({ KeyId, PolicyName }, (err, data) => { ... });
PowerShell

Verwenden Sie das Get-KMS-CmdletKeyPolicy, um die Schlüsselrichtlinie für einen KMS-Schlüssel abzurufen. Dieses Cmdlet gibt die Schlüsselrichtlinie als Zeichenfolge (System.String) zurück, die Sie in einem Write-KMSKeyPolicy (PutKeyPolicy)-Befehl verwenden können. Um die Richtlinien in der JSON-Zeichenfolge in PSCustomObject Objekte zu konvertieren, verwenden Sie das ConvertFrom-JSON-Cmdlet.

# Get the policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' $policyName = 'default' $response = Get-KMSKeyPolicy -KeyId $keyId -PolicyName $policyName

Um die AWS KMS PowerShell Cmdlets zu verwenden, installieren Sie das AWS.Tools.KeyManagementService-Modul. Weitere Informationen finden Sie im AWS Tools for Windows PowerShell-Benutzerhandbuch.

Einstellen einer Schlüsselrichtlinie

Um die Schlüsselrichtlinie für einen KMS-Schlüssel zu erstellen oder zu ersetzen, verwenden Sie die -PutKeyPolicyOperation.

PutKeyPolicy erfordert einen Richtliniennamen. default ist der einzige gültige Richtlinienname.

In Sprachen, für die ein Client-Objekt erforderlich ist, verwenden diese Beispiele das AWS KMS-Client-Objekt, das Sie in Erstellen eines Clients erstellt haben.

Java

Weitere Informationen finden Sie in der -putKeyPolicy Methode in der APIAWS SDK for Java-Referenz zu .

// Set a key policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; String policyName = "default"; String policy = "{" + " \"Version\": \"2012-10-17\"," + " \"Statement\": [{" + " \"Sid\": \"Allow access for ExampleRole\"," + " \"Effect\": \"Allow\"," + // Replace the following example user ARN with a valid one " \"Principal\": {\"AWS\": \"arn:aws:iam::111122223333:role/ExampleKeyUserRole\"}," + " \"Action\": [" + " \"kms:Encrypt\"," + " \"kms:GenerateDataKey*\"," + " \"kms:Decrypt\"," + " \"kms:DescribeKey\"," + " \"kms:ReEncrypt*\"" + " ]," + " \"Resource\": \"*\"" + " }]" + "}"; PutKeyPolicyRequest req = new PutKeyPolicyRequest().withKeyId(keyId).withPolicy(policy).withPolicyName(policyName); kmsClient.putKeyPolicy(req);
C#

Weitere Informationen finden Sie in der Beschreibung der PutKeyPolicy encrypt-Methode im AWS SDK for .NET.

// Set a key policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; String policyName = "default"; String policy = "{" + " \"Version\": \"2012-10-17\"," + " \"Statement\": [{" + " \"Sid\": \"Allow access for ExampleUser\"," + " \"Effect\": \"Allow\"," + // Replace the following example user ARN with a valid one " \"Principal\": {\"AWS\": \"arn:aws:iam::111122223333:role/ExampleKeyUserRole\"}," + " \"Action\": [" + " \"kms:Encrypt\"," + " \"kms:GenerateDataKey*\"," + " \"kms:Decrypt\"," + " \"kms:DescribeKey\"," + " \"kms:ReEncrypt*\"" + " ]," + " \"Resource\": \"*\"" + " }]" + "}"; PutKeyPolicyRequest putKeyPolicyRequest = new PutKeyPolicyRequest() { KeyId = keyId, Policy = policy, PolicyName = policyName }; kmsClient.PutKeyPolicy(putKeyPolicyRequest);
Python

Weitere Informationen finden Sie in der Beschreibung der put_key_policyencrypt-Methode im AWS SDK for Python (Boto3).

# Set a key policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' policy_name = 'default' policy = """ { "Version": "2012-10-17", "Statement": [{ "Sid": "Allow access for ExampleUser", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*", "kms:Decrypt", "kms:DescribeKey", "kms:ReEncrypt*" ], "Resource": "*" }] }""" response = kms_client.put_key_policy( KeyId=key_id, Policy=policy, PolicyName=policy_name )
Ruby

Weitere Informationen finden Sie unter der put_key_policy-Instance-Methode encrypt im AWS SDK for Ruby.

# Set a key policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' policy_name = 'default' policy = "{" + " \"Version\": \"2012-10-17\"," + " \"Statement\": [{" + " \"Sid\": \"Allow access for ExampleUser\"," + " \"Effect\": \"Allow\"," + # Replace the following example user ARN with a valid one " \"Principal\": {\"AWS\": \"arn:aws:iam::111122223333:role/ExampleKeyUserRole\"}," + " \"Action\": [" + " \"kms:Encrypt\"," + " \"kms:GenerateDataKey*\"," + " \"kms:Decrypt\"," + " \"kms:DescribeKey\"," + " \"kms:ReEncrypt*\"" + " ]," + " \"Resource\": \"*\"" + " }]" + "}" response = kmsClient.put_key_policy({ key_id: key_id, policy: policy, policy_name: policy_name })
PHP

Weitere Informationen finden Sie in der Beschreibung der PutKeyPolicy encrypt-Methode im AWS SDK for PHP.

// Set a key policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $policyName = "default"; $result = $KmsClient->putKeyPolicy([ 'KeyId' => $keyId, 'PolicyName' => $policyName, 'Policy' => '{ "Version": "2012-10-17", "Id": "custom-policy-2016-12-07", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/root" }, "Action": [ "kms:*" ], "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole" }, "Action": [ "kms:Encrypt*", "kms:GenerateDataKey*", "kms:Decrypt*", "kms:DescribeKey*", "kms:ReEncrypt*" ], "Resource": "*" } ] } ' ]);
Node.js

Weitere Informationen finden Sie in der putKeyPolicy Eigenschaft im AWS -SDK für JavaScript in Node.js .

// Set a key policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; const PolicyName = 'default'; const Policy = `{ "Version": "2012-10-17", "Id": "custom-policy-2016-12-07", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole" }, "Action": [ "kms:Encrypt*", "kms:GenerateDataKey*", "kms:Decrypt*", "kms:DescribeKey*", "kms:ReEncrypt*" ], "Resource": "*" } ] }`; // The key policy document kmsClient.putKeyPolicy({ KeyId, Policy, PolicyName }, (err, data) => { ... });
PowerShell

Verwenden Sie das Write-KMS-CmdletKeyPolicy, um eine Schlüsselrichtlinie für einen KMS-Schlüssel festzulegen. Dieses Cmdlet gibt keine Ausgabe zurück. Verwenden Sie das Get-KMS-KeyPolicyCmdlet, um zu überprüfen, ob der Befehl wirksam war.

Der Policy-Parameter verwendet eine Zeichenfolge. Umschließen Sie die Zeichenfolge in einfache Anführungszeichen, um sie zu einer Literalzeichenfolge zu machen. Sie müssen keine Fortsetzungszeichen oder Escape-Zeichen in der Literalzeichenfolge verwenden.

# Set a key policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' $policyName = 'default' $policy = '{ "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole" }, "Action": [ "kms:Encrypt*", "kms:GenerateDataKey*", "kms:Decrypt*", "kms:DescribeKey*", "kms:ReEncrypt*" ], "Resource": "*" }] }' Write-KMSKeyPolicy -KeyId $keyId -PolicyName $policyName -Policy $policy

Um die AWS KMS PowerShell Cmdlets zu verwenden, installieren Sie das AWS.Tools.KeyManagementService-Modul. Weitere Informationen finden Sie im AWS Tools for Windows PowerShell-Benutzerhandbuch.