

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üsseln mithilfe der AWS KMS API und der AWS SDK für PHP Version 3
<a name="kms-example-keys"></a>

Die primären Ressourcen in AWS Key Management Service () sind.AWS KMS[AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) Sie können einen KMS-Schlüssel verwenden, um Ihre Daten zu verschlüsseln.

In den nachstehenden Beispielen wird Folgendes veranschaulicht:
+ Erstellen Sie einen Kunden-KMS-Schlüssel mit [CreateKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#createkey).
+ Generieren Sie einen Datenschlüssel mit [GenerateDataKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#generatedatakey).
+ Zeigen Sie einen KMS-Schlüssel an mit [DescribeKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#describekey).
+ Schlüssel IDs und Schlüssel-ARNS von KMS-Schlüsseln abrufen mithilfe [ListKeys](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listkeys)von.
+ Aktivieren Sie KMS-Schlüssel mit [EnableKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#enablekey).
+ Deaktivieren Sie KMS-Schlüssel mit [DisableKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#disablekey).

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/).

## Erstellen Sie einen KMS-Schlüssel
<a name="create-a-cmk"></a>

Verwenden Sie den [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)Vorgang, um einen [KMS-Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) zu erstellen.

 **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'
]);

//Creates a customer master key (CMK) in the caller's AWS account.
$desc = "Key for protecting critical data";

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

## Erzeugen eines Datenschlüssels
<a name="generate-a-data-key"></a>

Verwenden Sie den [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)Vorgang, um einen Datenverschlüsselungsschlüssel zu generieren. Diese Operation gibt eine Klartextkopie und eine verschlüsselte Kopie des von ihr erstellten Datenschlüssels zurück. Geben Sie den an, AWS KMS key unter dem der Datenschlüssel generiert werden soll.

 **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';
$keySpec = 'AES_256';

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

## Einen KMS-Schlüssel anzeigen
<a name="view-a-cmk"></a>

Verwenden Sie den [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)Vorgang, um detaillierte Informationen zu einem KMS-Schlüssel zu erhalten, einschließlich des Amazon-Ressourcennamens (ARN) und des [Schlüsselstatus](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) des KMS-Schlüssels.

 Mit `DescribeKey` können keine Aliasnamen abgerufen werden. Verwenden Sie den [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)Vorgang, um Aliase 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';

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

## Ruft die Schlüssel-ID und den Schlüssel ARNs eines KMS-Schlüssels ab
<a name="get-the-key-id-and-key-arns-of-a-cmk"></a>

Verwenden Sie den [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)Vorgang, um die ID und den ARN des KMS-Schlüssels 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'
]);

$limit = 10;

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

## Aktivieren Sie einen KMS-Schlüssel
<a name="enable-a-cmk"></a>

Verwenden Sie den [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html)Vorgang, um einen deaktivierten KMS-Schlüssel zu aktivieren.

 **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';

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

## Deaktivieren Sie einen KMS-Schlüssel
<a name="disable-a-cmk"></a>

Verwenden Sie den [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html)Vorgang, um einen KMS-Schlüssel zu deaktivieren. Das Deaktivieren eines KMS-Schlüssels verhindert, dass er verwendet wird.

 **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';

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