

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.

# AWS Key Management Service exemples utilisant la AWS SDK pour PHP version 3
<a name="kms-examples"></a>

AWS Key Management Service (AWS KMS) est un service géré qui vous permet de créer et de contrôler facilement les clés de chiffrement utilisées pour chiffrer vos données. Pour plus d'informations AWS KMS, consultez la [documentation Amazon KMS](https://aws.amazon.com/documentation/kms/). Que vous écriviez des applications PHP sécurisées ou que vous envoyiez des données à d'autres AWS services, AWS KMS cela vous permet de contrôler qui peut utiliser vos clés et accéder à vos données cryptées.

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

**Topics**
+ [Utilisation de clés](kms-example-keys.md)
+ [Chiffrement et déchiffrement des clés de données](kms-example-encrypt.md)
+ [Utilisation de politiques de clé](kms-example-key-policy.md)
+ [Utilisation d'octrois](kms-example-grants.md)
+ [Utilisation des alias](kms-example-alias.md)

# 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";
}
```

# Chiffrement et déchiffrement des clés de AWS KMS données à l'aide de la version 3 AWS SDK pour PHP
<a name="kms-example-encrypt"></a>

Les clés de données sont des clés de chiffrement que vous pouvez utiliser pour chiffrer des données, y compris de grandes quantités de données et d'autres clés de chiffrement des données.

Vous pouvez utiliser AWS Key Management Service an's (AWS KMS) [AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys)pour générer, chiffrer et déchiffrer des clés de données.

Les exemples suivants montrent comment :
+ Chiffrer une clé de données à l’aide d’[Encrypt](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#encrypt).
+ Déchiffrer une clé de données à l’aide de [Decrypt](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#decrypt).
+ Rechiffrez une clé de données avec une nouvelle clé KMS à l'aide de. [ReEncrypt](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#reencrypt)

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

## Encrypt
<a name="encrypt"></a>

L'opération [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) est conçue pour chiffrer des clés de données, mais elle n'est pas fréquemment utilisée. Les [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)opérations [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)et renvoient des clés de données chiffrées. Vous pouvez utiliser `Encypt` cette méthode lorsque vous déplacez des données chiffrées vers une nouvelle AWS région et que vous souhaitez chiffrer leur clé de données à l'aide d'une clé KMS dans la nouvelle région.

 **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';
$message = pack('c*', 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);

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

## Decrypt
<a name="decrypt"></a>

Pour déchiffrer une clé de données, utilisez l'opération [Decrypt.](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)

La valeur `ciphertextBlob` que vous spécifiez doit être la valeur du `CiphertextBlob` champ provenant d'une réponse [GenerateDataKey[GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), ou [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html).

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

$ciphertext = 'Place your cipher text blob here';

try {
    $result = $KmsClient->decrypt([
        'CiphertextBlob' => $ciphertext,
    ]);
    $plaintext = $result['Plaintext'];
    var_dump($plaintext);
} catch (AwsException $e) {
    // Output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Rechiffrer
<a name="reencrypt"></a>

Pour déchiffrer une clé de données chiffrée, puis la rechiffrer immédiatement sous une autre clé KMS, utilisez l'opération. [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) Les opérations sont entièrement effectuées du côté serveur à l'intérieur AWS KMS, de sorte qu'elles n'exposent jamais votre texte brut en dehors de AWS KMS.

La valeur `ciphertextBlob` que vous spécifiez doit être la valeur du `CiphertextBlob` champ provenant d'une réponse [GenerateDataKey[GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), ou [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html).

 **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';
$ciphertextBlob = 'Place your cipher text blob here';

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

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

Lorsque vous créez une clé KMS [AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys), vous déterminez qui peut utiliser et gérer cette clé KMS. Ces autorisations sont contenues dans un document appelé politique de clé. Vous pouvez utiliser la politique clé pour ajouter, supprimer ou modifier des autorisations à tout moment pour une clé KMS gérée par le client, mais vous ne pouvez pas modifier la politique clé pour une clé KMS AWS gérée. Pour plus d'informations, consultez [Authentification et contrôle d'accès pour AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html).

Les exemples suivants montrent comment :
+ Répertoriez les noms des principales politiques à l'aide de [ListKeyPolicies](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listkeypolicies).
+ Obtenez une politique clé en utilisant [GetKeyPolicy](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#getkeypolicy).
+ Définissez une politique clé à l'aide de [PutKeyPolicy](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#putkeypolicy).

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

## Répertorier toutes les politiques clés
<a name="list-all-key-policies"></a>

Pour obtenir les noms des politiques clés pour une clé KMS, utilisez l'`ListKeyPolicies`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';
$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";
}
```

## Récupérer une politique clé
<a name="retrieve-a-key-policy"></a>

Pour obtenir la politique de clé d'une clé KMS, utilisez l'`GetKeyPolicy`opération.

 `GetKeyPolicy` nécessite un nom de politique. À moins que vous n'ayez créé une politique clé lors de la création de la clé KMS, le seul nom de politique valide est le nom par défaut. Pour en savoir plus sur la [politique relative aux clés par défaut](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html), consultez le *guide du AWS Key Management Service développeur*.

 **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';
$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";
}
```

## Définissez une politique clé
<a name="set-a-key-policy"></a>

Pour établir ou modifier une politique de clé pour une clé KMS, utilisez l'`PutKeyPolicy`opération.

 `PutKeyPolicy` nécessite un nom de politique. À moins que vous n'ayez créé une politique clé lors de la création de la clé KMS, le seul nom de politique valide est le nom par défaut. Pour en savoir plus sur la [politique relative aux clés par défaut](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html), consultez le *guide du AWS Key Management Service développeur*.

 **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';
$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";
}
```

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

Un octroi est un autre mécanisme permettant de fournir des autorisations. C'est une alternative à la politique clé. Vous pouvez utiliser des subventions pour accorder un accès à long terme qui permet AWS aux principaux d'utiliser votre AWS Key Management Service (AWS KMS) géré par le client [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). Pour plus d'informations, consultez la section [Subventions AWS KMS dans](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) le *guide du AWS Key Management Service développeur*.

Les exemples suivants montrent comment :
+ Créez une autorisation pour une clé KMS à l'aide de [CreateGrant](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#creategrant).
+ Affichez une autorisation pour une clé KMS à l'aide de [ListGrants](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listgrants).
+ Retirez une subvention pour une clé KMS en utilisant [RetireGrant](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#retiregrant).
+ Révoquez une autorisation pour une clé KMS en utilisant [RevokeGrant](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#revokegrant).

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éer un octroi
<a name="create-a-grant"></a>

Pour créer une subvention pour un AWS KMS key, utilisez l'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.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';
$granteePrincipal = "arn:aws:iam::111122223333:user/Alice";
$operation = ['Encrypt', 'Decrypt']; // A list of operations that the grant allows.

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

## Affichage d’un octroi
<a name="view-a-grant"></a>

Pour obtenir des informations détaillées sur les subventions sur un AWS KMS key, utilisez l'[ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.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';
$limit = 10;

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

## Retrait d'une subvention
<a name="retire-a-grant"></a>

Pour annuler une subvention pour un AWS KMS key, utilisez l'[RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)opération. Résilier un octroi pour nettoyer une fois que vous avez fini de l'utiliser.

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

$grantToken = 'Place your grant token here';

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

//Can also identify grant to retire by a combination of the grant ID
//and the Amazon Resource Name (ARN) of the customer master key (CMK)
$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';
$grantId = 'Unique identifier of the grant returned during CreateGrant operation';

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

## Révoquer une subvention
<a name="revoke-a-grant"></a>

Pour révoquer une subvention accordée à un AWS KMS key, utilisez l'[RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)opération. Vous pouvez révoquer un octroi pour refuser explicitement les opérations qui en dépendent.

 **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';
$grantId = "grant1";

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

# Utilisation d'alias à l'aide de l' AWS KMS API et de la AWS SDK pour PHP version 3
<a name="kms-example-alias"></a>

AWS Key Management Service (AWS KMS) fournit un nom d'affichage facultatif pour un alias [AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys)appelé.

Les exemples suivants montrent comment :
+ Créez un alias à l'aide de [CreateAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#createalias).
+ Affichez un alias à l'aide de [ListAliases](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listaliases).
+ Mettez à jour un alias à l'aide de [UpdateAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#updatealias).
+ Supprimez un alias à l'aide de [DeleteAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#deletealias).

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’un alias
<a name="create-an-alias"></a>

Pour créer un alias pour une clé KMS, utilisez l'[CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)opération. L'alias doit être unique dans le compte et dans AWS la région. Si vous créez un alias pour une clé KMS qui possède déjà un alias, `CreateAlias` crée un autre alias pour la même clé KMS. Cette opération ne remplace pas l'alias existant.

 **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';
$aliasName = "alias/projectKey1";

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

## Afficher un alias
<a name="view-an-alias"></a>

Pour répertorier tous les alias figurant dans l'annonce de l' Compte AWS appelant Région AWS, utilisez l'[ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.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->listAliases([
        'Limit' => $limit,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Mettre à jour un alias
<a name="update-an-alias"></a>

Pour associer un alias existant à une autre clé KMS, utilisez l'[UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.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';
$aliasName = "alias/projectKey1";

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

## Suppression d’un alias
<a name="delete-an-alias"></a>

Pour supprimer un alias, utilisez l'[DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html)opération. La suppression d'un alias n'a aucun effet sur la clé KMS sous-jacente.

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

$aliasName = "alias/projectKey1";

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