

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplos do AWS Key Management Service usando o AWS SDK para PHP versão 3
<a name="kms-examples"></a>

AWS Key Management Service (AWS KMS) é um serviço gerenciado que facilita a criação e o controle das chaves de criptografia usadas para criptografar seus dados. Para obter mais informações sobre o AWS KMS, consulte a [Documentação do Amazon KMS](https://aws.amazon.com/documentation/kms/). Se você estiver escrevendo aplicações seguras para PHP ou enviando dados para outros serviços da AWS, o AWS KMS ajudará a manter o controle sobre quem pode usar as chaves e ter acesso aos dados criptografados.

Todo o código de exemplo do AWS SDK para PHP versão 3 está disponível [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

**Topics**
+ [Trabalhar com chaves](kms-example-keys.md)
+ [Criptografar e descriptografar chaves de dados](kms-example-encrypt.md)
+ [Trabalhar com políticas de chaves](kms-example-key-policy.md)
+ [Trabalhar com concessões](kms-example-grants.md)
+ [Trabalhar com aliases](kms-example-alias.md)

# Trabalhando com chaves usando a AWS KMS API e a AWS SDK para PHP versão 3
<a name="kms-example-keys"></a>

Os recursos primários em AWS Key Management Service (AWS KMS) são [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). Você pode usar uma chave do KMS para criptografar seus dados.

Os exemplos a seguir mostram como:
+ Crie uma chave KMS do cliente usando [CreateKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#createkey).
+ Gere uma chave de dados usando [GenerateDataKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#generatedatakey).
+ Visualize uma chave KMS usando [DescribeKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#describekey).
+ Obtenha a chave IDs e a chave ARNS das chaves KMS usando. [ListKeys](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listkeys)
+ Ative as chaves KMS usando [EnableKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#enablekey).
+ Desative as chaves KMS usando [DisableKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#disablekey).

Todo o código de exemplo para o AWS SDK para PHP está disponível [aqui em GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas AWS credenciais, conforme descrito em[Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em[Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

Para obter mais informações sobre como usar AWS Key Management Service (AWS KMS), consulte o [Guia do AWS KMS desenvolvedor](https://docs.aws.amazon.com/kms/latest/developerguide/).

## Criar uma chave do KMS
<a name="create-a-cmk"></a>

Para criar uma [chave KMS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys), use a [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operação.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Gerar uma chave de dados
<a name="generate-a-data-key"></a>

Para gerar uma chave de criptografia de dados, use a [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)operação. Essa operação retorna cópias de texto simples e criptografadas da chave de dados que ela cria. Especifique o AWS KMS key abaixo do qual gerar a chave de dados.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Visualizar uma chave do KMS
<a name="view-a-cmk"></a>

Para obter informações detalhadas sobre uma chave KMS, incluindo o Amazon Resource Name (ARN) e o [estado da chave](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) KMS, use a operação. [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)

 `DescribeKey` não obtém aliases. Para obter aliases, use a [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)operação.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Obtenha o ID da chave e a chave ARNs de uma chave KMS
<a name="get-the-key-id-and-key-arns-of-a-cmk"></a>

Para obter o ID e o ARN da chave KMS, use a operação. [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Habilitar uma chave do KMS
<a name="enable-a-cmk"></a>

Para ativar uma chave KMS desativada, use a [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html)operação.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Desabilitar uma chave do KMS
<a name="disable-a-cmk"></a>

Para desativar uma chave KMS, use a [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html)operação. A desabilitação de uma chave do KMS impede que ela seja usada.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

# Criptografando e descriptografando chaves de AWS KMS dados usando a versão 3 AWS SDK para PHP
<a name="kms-example-encrypt"></a>

As chaves de dados são as chaves de criptografia que você pode usar para criptografar dados, incluindo grandes quantidades de dados e outras chaves de criptografia de dados.

Você pode usar AWS Key Management Service an's (AWS KMS) [AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys)para gerar, criptografar e descriptografar chaves de dados.

Os exemplos a seguir mostram como:
+ Criptografar uma chave de dados usando [Encrypt](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#encrypt).
+ Descriptografar uma chave de dados usando [Decrypt](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#decrypt).
+ Criptografe novamente uma chave de dados com uma nova chave KMS usando. [ReEncrypt](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#reencrypt)

Todo o código de exemplo para o AWS SDK para PHP está disponível [aqui em GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas AWS credenciais, conforme descrito em[Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em[Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

Para obter mais informações sobre como usar AWS Key Management Service (AWS KMS), consulte o [Guia do AWS KMS desenvolvedor](https://docs.aws.amazon.com/kms/latest/developerguide/).

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

A operação [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) é projetada para criptografar chaves de dados, mas não é usada com frequência. As [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)operações [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)e retornam chaves de dados criptografadas. Você pode usar o método `Encypt` quando estiver movendo dados criptografados para uma nova região da AWS e quiser criptografar a chave de dados com uma chave do KMS na nova região.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

```
$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>

Para descriptografar uma chave de dados, use a operação [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html).

O `ciphertextBlob` que você especificar deve ser o valor do `CiphertextBlob` campo de uma resposta [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html), ou [Criptografar.](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

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

Para descriptografar uma chave de dados criptografada e, em seguida, recriptografar imediatamente a chave de dados com uma chave KMS diferente, use a operação. [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) As operações são realizadas inteiramente no lado interno do servidor AWS KMS, para que nunca exponham seu texto simples do lado de fora. AWS KMS

O `ciphertextBlob` que você especificar deve ser o valor do `CiphertextBlob` campo de uma resposta [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html), ou [Criptografar.](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

# Trabalhando com as AWS KMS principais políticas usando a AWS SDK para PHP versão 3
<a name="kms-example-key-policy"></a>

Ao criar uma [AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys), você determina quem pode usar e gerenciar essa chave do KMS. Essas permissões estão contidas em um documento chamado política de chaves. Você pode usar a política de chaves para adicionar, remover ou modificar permissões a qualquer momento para uma chave KMS gerenciada pelo cliente, mas não pode editar a política de chaves para uma chave KMS AWS gerenciada. Para obter mais informações, consulte [Autenticação e controle de acesso para o AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html).

Os exemplos a seguir mostram como:
+ Liste os nomes das principais políticas usando [ListKeyPolicies](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listkeypolicies).
+ Obtenha uma política importante usando [GetKeyPolicy](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#getkeypolicy).
+ Defina uma política chave usando [PutKeyPolicy](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#putkeypolicy).

Todo o código de exemplo do AWS SDK para PHP está disponível [aqui em GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas AWS credenciais, conforme descrito em[Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em[Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

Para obter mais informações sobre como usar AWS Key Management Service (AWS KMS), consulte o [Guia do AWS KMS desenvolvedor](https://docs.aws.amazon.com/kms/latest/developerguide/).

## Listar todas as políticas de chaves
<a name="list-all-key-policies"></a>

Para obter os nomes das políticas de chaves de uma chave do KMS, use a operação `ListKeyPolicies`. 

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Recuperar uma política de chaves
<a name="retrieve-a-key-policy"></a>

Para obter a política de uma chave do KMS, use a operação `GetKeyPolicy`.

 `GetKeyPolicy` exige um nome de política. A não ser que você tenha criado uma política de chave ao criar a chave do KMS, o único nome de política válido é o padrão. Saiba mais sobre a [política de chave padrão](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html) no *Guia do desenvolvedor do AWS Key Management Service *.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Definir uma política de chave
<a name="set-a-key-policy"></a>

Para estabelecer ou alterar a política de uma chave do KMS, use a operação `PutKeyPolicy`.

 `PutKeyPolicy` exige um nome de política. A não ser que você tenha criado uma política de chave ao criar a chave do KMS, o único nome de política válido é o padrão. Saiba mais sobre a [política de chave padrão](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html) no *Guia do desenvolvedor do AWS Key Management Service *.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

# Trabalhando com subsídios usando a AWS KMS API e a AWS SDK para PHP versão 3
<a name="kms-example-grants"></a>

Uma concessão é outro mecanismo para fornecer permissões. É uma alternativa à política de chave. Você pode usar subsídios para fornecer acesso de longo prazo que permita que AWS os diretores usem seu AWS Key Management Service (AWS KMS) gerenciado pelo cliente [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). Para obter mais informações, consulte [Concessões no AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) no *Guia do desenvolvedor AWS Key Management Service *.

Os exemplos a seguir mostram como:
+ Crie uma concessão para uma chave KMS usando [CreateGrant](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#creategrant).
+ Visualize uma concessão para uma chave KMS usando [ListGrants](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listgrants).
+ Retire uma concessão para uma chave KMS usando [RetireGrant](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#retiregrant).
+ Revogue a concessão de uma chave KMS usando. [RevokeGrant](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#revokegrant)

Todo o código de exemplo para o AWS SDK para PHP está disponível [aqui em GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas AWS credenciais, conforme descrito em[Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em[Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

Para obter mais informações sobre como usar AWS Key Management Service (AWS KMS), consulte o [Guia do AWS KMS desenvolvedor](https://docs.aws.amazon.com/kms/latest/developerguide/).

## Criar uma concessão
<a name="create-a-grant"></a>

Para criar uma concessão para um AWS KMS key, use a [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operação.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Visualizar uma concessão
<a name="view-a-grant"></a>

Para obter informações detalhadas sobre as concessões em um AWS KMS key, use a [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)operação.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Retirar uma concessão
<a name="retire-a-grant"></a>

Para retirar uma concessão de um AWS KMS key, use a [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)operação. Remova uma concessão para limpá-la depois que terminar de usá-la.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Revogar uma concessão
<a name="revoke-a-grant"></a>

Para revogar uma concessão a um AWS KMS key, use a [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)operação. Você pode revogar uma concessão para negar explicitamente as operações que dependem dela.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

# Trabalhando com aliases usando a AWS KMS API e a AWS SDK para PHP versão 3
<a name="kms-example-alias"></a>

AWS Key Management Service (AWS KMS) fornece um nome de exibição opcional para um [AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys)chamado alias.

Os exemplos a seguir mostram como:
+ Crie um alias usando o. [CreateAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#createalias)
+ Visualize um alias usando [ListAliases](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listaliases).
+ Atualize um alias usando o. [UpdateAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#updatealias)
+ Exclua um alias usando [DeleteAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#deletealias).

Todo o código de exemplo do AWS SDK para PHP está disponível [aqui em GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas AWS credenciais, conforme descrito em[Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em[Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

Para obter mais informações sobre como usar AWS Key Management Service (AWS KMS), consulte o [Guia do AWS KMS desenvolvedor](https://docs.aws.amazon.com/kms/latest/developerguide/).

## Criar um alias da
<a name="create-an-alias"></a>

Para criar um alias para uma chave KMS, use a [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)operação. O alias deve ser exclusivo na conta e na AWS região. Se você criar um alias para uma chave do KMS que já tem um alias, a operação `CreateAlias` criará outro alias para a mesma chave do KMS. Ela não substitui o alias existente.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Visualizar um alias
<a name="view-an-alias"></a>

Para listar todos os aliases na mão do Conta da AWS chamador Região da AWS, use a [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)operação. 

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Atualizar um alias
<a name="update-an-alias"></a>

Para associar um alias existente a uma chave KMS diferente, use a [UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html)operação.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Excluir um alias
<a name="delete-an-alias"></a>

Para excluir um alias, use a [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html)operação. A exclusão de um alias não tem efeito sobre a chave do KMS subjacente.

 **Importações** 

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

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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