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á.
Trabalhar com as políticas de chave do AWS KMS usando o AWS SDK para PHP versão 3
Ao criar uma AWS KMS key, 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 chave para adicionar, remover ou modificar permissões a qualquer momento para uma chave do KMS gerenciada pelo cliente, mas não pode editar a política para uma chave do KMS gerenciada pela AWS. Para obter mais informações, consulte Autenticação e controle de acesso para o AWS KMS.
Os exemplos a seguir mostram como:
-
Listar os nomes das políticas de chaves usando ListKeyPolicies.
-
Obter uma política de chaves usando GetKeyPolicy.
-
Definir uma política de chaves usando PutKeyPolicy.
O código de exemplo completo do AWS SDK para PHP está disponível aqui no GitHub
Credenciais
Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em Autenticando com o AWS uso da AWS SDK para PHP versão 3. Em seguida, importe o AWS SDK para PHP, conforme descrito em Instalar o AWS SDK para PHP versão 3.
Para obter mais informações sobre como usar o AWS Key Management Service (AWS KMS), consulte o Guia do desenvolvedor do AWS KMS.
Listar todas as políticas de chaves
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
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 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
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 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"; }