

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Lavorare con le chiavi utilizzando l' AWS KMS API e la AWS SDK per PHP versione 3
<a name="kms-example-keys"></a>

Le risorse principali in () sono. AWS Key Management Service AWS KMS[AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) Puoi utilizzare una chiave KMS per crittografare i tuoi dati.

Gli esempi seguenti mostrano come:
+ Crea una chiave KMS del cliente utilizzando. [CreateKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#createkey)
+ Genera una chiave dati utilizzando [GenerateDataKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#generatedatakey).
+ Visualizza una chiave KMS utilizzando [DescribeKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#describekey).
+ Ottieni la chiave IDs e le chiavi ARNS delle chiavi KMS utilizzando. [ListKeys](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listkeys)
+ Abilita le chiavi KMS utilizzando. [EnableKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#enablekey)
+ Disabilita le chiavi KMS utilizzando. [DisableKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#disablekey)

Tutto il codice di esempio per il AWS SDK per PHP è [disponibile GitHub qui](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto in[Autenticazione con l' AWS utilizzo AWS SDK per PHP della versione 3](credentials.md). Quindi importate il file AWS SDK per PHP, come descritto in[Installazione della AWS SDK per PHP versione 3](getting-started_installation.md).

Per ulteriori informazioni sull'utilizzo di AWS Key Management Service (AWS KMS), consulta la [Guida per gli AWS KMS sviluppatori](https://docs.aws.amazon.com/kms/latest/developerguide/).

## Crea una chiave KMS
<a name="create-a-cmk"></a>

Per creare una [chiave KMS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys), usa l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operazione.

 **Importazioni** 

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

use Aws\Exception\AwsException;
```

 **Codice di esempio** 

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

## Generazione di una chiave di dati
<a name="generate-a-data-key"></a>

Per generare una chiave di crittografia dei dati, utilizzare l'[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)operazione. Questa operazione restituisce il testo normale e copie crittografate della chiave di dati creata. Specificare AWS KMS key in che modo generare la chiave dati.

 **Importazioni** 

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

use Aws\Exception\AwsException;
```

 **Codice di esempio** 

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

## Visualizza una chiave KMS
<a name="view-a-cmk"></a>

Per ottenere informazioni dettagliate su una chiave KMS, incluso l'Amazon Resource Name (ARN) della chiave KMS e [lo stato della chiave](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html), utilizza l'operazione. [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)

 `DescribeKey` non ottiene alias. Per ottenere gli alias, usa l'operazione. [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)

 **Importazioni** 

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

use Aws\Exception\AwsException;
```

 **Codice di esempio** 

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

## Ottieni l'ID della chiave e la chiave ARNs di una chiave KMS
<a name="get-the-key-id-and-key-arns-of-a-cmk"></a>

Per ottenere l'ID e l'ARN della chiave KMS, utilizzare l'operazione. [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)

 **Importazioni** 

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

use Aws\Exception\AwsException;
```

 **Codice di esempio** 

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

## Abilita una chiave KMS
<a name="enable-a-cmk"></a>

Per abilitare una chiave KMS disabilitata, usa l'[EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html)operazione.

 **Importazioni** 

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

use Aws\Exception\AwsException;
```

 **Codice di esempio** 

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

## Disattiva una chiave KMS
<a name="disable-a-cmk"></a>

Per disabilitare una chiave KMS, usa l'[DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html)operazione. La disabilitazione di una chiave KMS ne impedisce l'utilizzo.

 **Importazioni** 

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

use Aws\Exception\AwsException;
```

 **Codice di esempio** 

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