

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

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