

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.

# Mit der AWS SDK für PHP Version 3 mit AWS KMS wichtigen Richtlinien arbeiten
<a name="kms-example-key-policy"></a>

Wenn Sie einen erstellen [AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys), legen Sie fest, wer diesen KMS-Schlüssel verwenden und verwalten kann. Diese Berechtigungen werden in einem Dokument namens Schlüsselrichtlinie festgehalten. Sie können die Schlüsselrichtlinie verwenden, um jederzeit Berechtigungen für einen vom Kunden verwalteten KMS-Schlüssel hinzuzufügen, zu entfernen oder zu ändern, aber Sie können die Schlüsselrichtlinie für einen AWS verwalteten KMS-Schlüssel nicht bearbeiten. Weitere Informationen finden Sie unter [Authentifizierung und Zugriffskontrolle für AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html).

In den nachstehenden Beispielen wird Folgendes veranschaulicht:
+ Listet die Namen der wichtigsten Richtlinien auf, die verwendet [ListKeyPolicies](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listkeypolicies)werden.
+ Holen Sie sich eine wichtige Richtlinie mit [GetKeyPolicy](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#getkeypolicy).
+ Legen Sie eine wichtige Richtlinie fest mit [PutKeyPolicy](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#putkeypolicy).

Der gesamte Beispielcode für AWS SDK für PHP ist [hier verfügbar GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Anmeldeinformationen
<a name="examplecredentials"></a>

Bevor Sie den Beispielcode ausführen, konfigurieren Sie Ihre AWS Anmeldeinformationen wie unter beschrieben[Authentifizierung AWS mit AWS SDK für PHP Version 3](credentials.md). Importieren Sie dann die AWS SDK für PHP, wie unter beschrieben[Installation der AWS SDK für PHP Version 3](getting-started_installation.md).

Weitere Informationen zur Verwendung von AWS Key Management Service (AWS KMS) finden Sie im [AWS KMS Entwicklerhandbuch](https://docs.aws.amazon.com/kms/latest/developerguide/).

## Alle wichtigen Richtlinien auflisten
<a name="list-all-key-policies"></a>

Verwenden Sie den `ListKeyPolicies` Vorgang, um die Namen der wichtigsten Richtlinien für einen KMS-Schlüssel abzurufen. 

 **Importe** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Beispiel-Code** 

```
$KmsClient = new Aws\Kms\KmsClient([
    'profile' => 'default',
    'version' => '2014-11-01',
    'region' => 'us-east-2'
]);

$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';
$limit = 10;

try {
    $result = $KmsClient->listKeyPolicies([
        'KeyId' => $keyId,
        'Limit' => $limit,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Rufen Sie eine wichtige Richtlinie ab
<a name="retrieve-a-key-policy"></a>

Verwenden Sie den `GetKeyPolicy` Vorgang, um die Schlüsselrichtlinie für einen KMS-Schlüssel abzurufen.

 `GetKeyPolicy` erfordert einen Richtliniennamen. Sofern Sie beim Erstellen des KMS-Schlüssels keine Schlüsselrichtlinie erstellt haben, ist der einzig gültige Richtlinienname der Standardwert. Weitere Informationen zur [Standardschlüsselrichtlinie](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html) finden Sie im *AWS Key Management Service Entwicklerhandbuch*.

 **Importe** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Beispiel-Code** 

```
$KmsClient = new Aws\Kms\KmsClient([
    'profile' => 'default',
    'version' => '2014-11-01',
    'region' => 'us-east-2'
]);

$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';
$policyName = "default";

try {
    $result = $KmsClient->getKeyPolicy([
        'KeyId' => $keyId,
        'PolicyName' => $policyName
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Legen Sie eine wichtige Richtlinie fest
<a name="set-a-key-policy"></a>

Verwenden Sie den `PutKeyPolicy` Vorgang, um eine Schlüsselrichtlinie für einen KMS-Schlüssel einzurichten oder zu ändern.

 `PutKeyPolicy` erfordert einen Richtliniennamen. Sofern Sie beim Erstellen des KMS-Schlüssels keine Schlüsselrichtlinie erstellt haben, ist der einzig gültige Richtlinienname der Standardwert. Weitere Informationen zur [Standardschlüsselrichtlinie](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html) finden Sie im *AWS Key Management Service Entwicklerhandbuch*.

 **Importe** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Beispiel-Code** 

```
$KmsClient = new Aws\Kms\KmsClient([
    'profile' => 'default',
    'version' => '2014-11-01',
    'region' => 'us-east-2'
]);

$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';
$policyName = "default";

try {
    $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:user/ExampleUser" }, 
                "Action": [
                    "kms:Encrypt*",
                    "kms:GenerateDataKey*",
                    "kms:Decrypt*",
                    "kms:DescribeKey*",
                    "kms:ReEncrypt*"
                ], 
                "Resource": "*" }                 
            ]            
        } '
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```