

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à.

# AWS Key Management Service esempi utilizzando la AWS SDK per PHP versione 3
<a name="kms-examples"></a>

AWS Key Management Service (AWS KMS) è un servizio gestito che semplifica la creazione e il controllo delle chiavi di crittografia utilizzate per crittografare i dati. Per ulteriori informazioni AWS KMS, consulta la [documentazione di Amazon KMS](https://aws.amazon.com/documentation/kms/). Che tu stia scrivendo applicazioni PHP sicure o inviando dati ad altri AWS servizi, ti AWS KMS aiuta a mantenere il controllo su chi può usare le tue chiavi e accedere ai tuoi dati crittografati.

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

**Topics**
+ [Utilizzo delle chiavi](kms-example-keys.md)
+ [Crittografia e decrittografia delle chiavi di dati](kms-example-encrypt.md)
+ [Utilizzo di policy delle chiavi](kms-example-key-policy.md)
+ [Utilizzo delle concessioni](kms-example-grants.md)
+ [Utilizzo degli alias](kms-example-alias.md)

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

# Crittografia e decrittografia delle chiavi di AWS KMS dati utilizzando la versione 3 AWS SDK per PHP
<a name="kms-example-encrypt"></a>

Le chiavi di dati sono chiavi di crittografia che possono essere usate per crittografare i dati, incluso grandi quantità di dati e altre chiavi di crittografia.

È possibile utilizzare AWS Key Management Service an's (AWS KMS) [AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys)per generare, crittografare e decrittografare le chiavi di dati.

Gli esempi seguenti mostrano come:
+ Crittografare una chiave di dati utilizzando [Encrypt](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#encrypt).
+ Decrittografare una chiave di dati utilizzando [Decrypt](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#decrypt).
+ Crittografa nuovamente una chiave dati con una nuova chiave KMS utilizzando. [ReEncrypt](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#reencrypt)

[Tutto il codice di esempio per il AWS SDK per PHP è disponibile qui. GitHub](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/).

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

L'operazione [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) è progettata per crittografare le chiavi dei dati, ma non viene utilizzata di frequente. Le [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)operazioni [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)and restituiscono chiavi di dati crittografate. È possibile utilizzare il `Encypt` metodo quando si spostano dati crittografati in una nuova AWS regione e si desidera crittografare la relativa chiave dati utilizzando una chiave KMS nella nuova regione.

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

Per decrittografare una chiave di dati, utilizza l'operazione [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html).

`ciphertextBlob`Quello che specifichi deve essere il valore del `CiphertextBlob` campo proveniente da una risposta [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)o [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html). [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.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'
]);

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

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

Per decrittografare una chiave dati crittografata e quindi ricrittografare immediatamente la chiave dati con una chiave KMS diversa, utilizza l'operazione. [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) Le operazioni vengono eseguite interamente sul lato server interno AWS KMS, quindi non espongono mai il testo in chiaro all'esterno. AWS KMS

[Il `ciphertextBlob` valore specificato deve essere il valore del `CiphertextBlob` campo di una risposta o [GenerateDataKey[GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)Encrypt.](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.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';
$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";
}
```

# Utilizzo delle politiche AWS KMS chiave utilizzando la AWS SDK per PHP versione 3
<a name="kms-example-key-policy"></a>

Quando ne crei una [AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys), stabilisci chi può utilizzare e gestire quella chiave KMS. Queste autorizzazioni sono contenute in un documento chiamato policy delle chiavi. Puoi utilizzare la politica chiave per aggiungere, rimuovere o modificare le autorizzazioni in qualsiasi momento per una chiave KMS gestita dal cliente, ma non puoi modificare la politica chiave per una chiave KMS AWS gestita. Per ulteriori informazioni, consulta [Autenticazione e controllo degli accessi](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html) per. AWS KMS

Gli esempi seguenti mostrano come:
+ Elenca i nomi delle politiche chiave che utilizzano [ListKeyPolicies](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listkeypolicies).
+ Ottieni una politica chiave utilizzando [GetKeyPolicy](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#getkeypolicy).
+ Imposta una politica chiave utilizzando [PutKeyPolicy](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#putkeypolicy).

Tutto il codice di esempio per AWS SDK per PHP è [disponibile qui GitHub](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/).

## Elenca tutte le politiche chiave
<a name="list-all-key-policies"></a>

Per ottenere i nomi delle politiche chiave per una chiave KMS, usa l'`ListKeyPolicies`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';
$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";
}
```

## Recupera una politica chiave
<a name="retrieve-a-key-policy"></a>

Per ottenere la politica chiave per una chiave KMS, usa l'`GetKeyPolicy`operazione.

 `GetKeyPolicy` richiede un nome per la policy. A meno che tu non abbia creato una politica chiave quando hai creato la chiave KMS, l'unico nome di policy valido è quello predefinito. Scopri di più sulla [politica delle chiavi predefinite](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html) nella *Guida per gli AWS Key Management Service sviluppatori*.

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

## Imposta una politica chiave
<a name="set-a-key-policy"></a>

Per stabilire o modificare una politica chiave per una chiave KMS, usa l'`PutKeyPolicy`operazione.

 `PutKeyPolicy` richiede un nome per la policy. A meno che tu non abbia creato una politica chiave quando hai creato la chiave KMS, l'unico nome di politica valido è quello predefinito. Scopri di più sulla [politica delle chiavi predefinite](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html) nella *Guida per gli AWS Key Management Service sviluppatori*.

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

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

Una concessione è un altro meccanismo per fornire le autorizzazioni. È un'alternativa alla politica chiave. Puoi utilizzare le sovvenzioni per concedere un accesso a lungo termine che consenta ai AWS mandanti di utilizzare i servizi AWS Key Management Service (AWS KMS) gestiti dai clienti. [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) *Per ulteriori informazioni, consulta [Grants nella AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) Developer Guide.AWS Key Management Service *

Gli esempi seguenti mostrano come:
+ Crea una sovvenzione per una chiave KMS utilizzando. [CreateGrant](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#creategrant)
+ Visualizza una concessione per una chiave KMS utilizzando. [ListGrants](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listgrants)
+ Ritirare una sovvenzione per l'utilizzo di una chiave KMS. [RetireGrant](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#retiregrant)
+ Revoca una concessione per una chiave KMS utilizzando. [RevokeGrant](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#revokegrant)

[Tutto il codice di esempio per il AWS SDK per PHP è disponibile qui. GitHub](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/).

## Creazione di una concessione
<a name="create-a-grant"></a>

Per creare una sovvenzione per un AWS KMS key, usa l'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.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';
$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";
}
```

## Visualizza una concessione
<a name="view-a-grant"></a>

Per ottenere informazioni dettagliate sulle sovvenzioni concesse a an AWS KMS key, usa l'[ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.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';
$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";
}
```

## Ritirare una borsa di studio
<a name="retire-a-grant"></a>

Per ritirare una sovvenzione per un AWS KMS key, usa l'[RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)operazione. Ritira una concessione al termine del suo 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'
]);

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

## Revocare una sovvenzione
<a name="revoke-a-grant"></a>

Per revocare una concessione a un AWS KMS key, usa l'operazione. [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html) Puoi revocare una concessione per negare esplicitamente le operazioni che dipendono da essa.

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

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

AWS Key Management Service (AWS KMS) fornisce un nome di visualizzazione opzionale per un alias [AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys)chiamato.

Gli esempi seguenti mostrano come:
+ Crea un alias utilizzando. [CreateAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#createalias)
+ Visualizza un alias utilizzando. [ListAliases](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listaliases)
+ Aggiorna un alias utilizzando. [UpdateAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#updatealias)
+ Elimina un alias utilizzando. [DeleteAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#deletealias)

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

## Creare un alias
<a name="create-an-alias"></a>

Per creare un alias per una chiave KMS, usa l'[CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)operazione. L'alias deve essere univoco nell'account e nella regione. AWS Se crei un alias per una chiave KMS che ha già un alias, `CreateAlias` crea un altro alias per la stessa chiave KMS. Non sostituisce l'alias esistente.

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

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

Per elencare tutti gli alias del chiamante Account AWS e Regione AWS, usa l'operazione. [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.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->listAliases([
        'Limit' => $limit,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Aggiornare un alias
<a name="update-an-alias"></a>

Per associare un alias esistente a una chiave KMS diversa, usa l'operazione. [UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.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';
$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";
}
```

## Eliminare un alias
<a name="delete-an-alias"></a>

Per eliminare un alias, usa l'operazione. [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html) L'eliminazione di un alias non ha alcun effetto sulla chiave KMS sottostante.

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

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