

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation des clés à l'aide de l' AWS KMS API et de la AWS SDK pour PHP version 3
<a name="kms-example-keys"></a>

Les principales ressources contenues dans AWS Key Management Service (AWS KMS) sont [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). Vous pouvez utiliser une clé KMS pour chiffrer vos données.

Les exemples suivants montrent comment :
+ Créez une clé KMS client à l'aide de [CreateKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#createkey).
+ Générez une clé de données à l'aide de [GenerateDataKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#generatedatakey).
+ Affichez une clé KMS à l'aide de [DescribeKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#describekey).
+ Obtenez les clés IDs et les ARNS des clés KMS à l'aide [ListKeys](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listkeys)de.
+ Activez les clés KMS à l'aide de [EnableKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#enablekey).
+ Désactivez les clés KMS à l'aide de [DisableKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#disablekey).

Tous les exemples de code pour le AWS SDK pour PHP sont [disponibles ici GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Informations d’identification
<a name="examplecredentials"></a>

Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dans[Authentification à l' AWS aide de AWS SDK pour PHP la version 3](credentials.md). Importez ensuite le AWS SDK pour PHP, comme décrit dans[Installation de la AWS SDK pour PHP version 3](getting-started_installation.md).

Pour plus d'informations sur l'utilisation de AWS Key Management Service (AWS KMS), consultez le [manuel du AWS KMS développeur](https://docs.aws.amazon.com/kms/latest/developerguide/).

## Création d'une clé KMS
<a name="create-a-cmk"></a>

Pour créer une [clé KMS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys), utilisez l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)opération.

 **Importations** 

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

use Aws\Exception\AwsException;
```

 **Exemple de 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";
}
```

## Générer une clé de données
<a name="generate-a-data-key"></a>

Pour générer une clé de chiffrement des données, utilisez l'[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)opération. Cette opération renvoie des copies en texte brut et chiffrées de la clé de données créée. Spécifiez la clé de données AWS KMS key sous laquelle vous souhaitez générer la clé de données.

 **Importations** 

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

use Aws\Exception\AwsException;
```

 **Exemple de 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";
}
```

## Afficher une clé KMS
<a name="view-a-cmk"></a>

Pour obtenir des informations détaillées sur une clé KMS, notamment le nom de ressource Amazon (ARN) et [l'état de la clé](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) KMS, utilisez l'[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)opération.

 `DescribeKey` ne récupère pas les alias. Pour obtenir des alias, utilisez l'[ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)opération.

 **Importations** 

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

use Aws\Exception\AwsException;
```

 **Exemple de 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";
}
```

## Obtenez l'ID de clé et ARNs la clé d'une clé KMS
<a name="get-the-key-id-and-key-arns-of-a-cmk"></a>

Pour obtenir l'ID et l'ARN de la clé KMS, utilisez l'[ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)opération.

 **Importations** 

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

use Aws\Exception\AwsException;
```

 **Exemple de 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";
}
```

## Activer une clé KMS
<a name="enable-a-cmk"></a>

Pour activer une clé KMS désactivée, utilisez l'[EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html)opération.

 **Importations** 

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

use Aws\Exception\AwsException;
```

 **Exemple de 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";
}
```

## Désactiver une clé KMS
<a name="disable-a-cmk"></a>

Pour désactiver une clé KMS, utilisez l'[DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html)opération. La désactivation d'une clé KMS empêche son utilisation.

 **Importations** 

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

use Aws\Exception\AwsException;
```

 **Exemple de 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";
}
```