Uso de las políticas de claves de AWS KMS con la versión 3 del AWS SDK para PHP - AWS SDK para PHP

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de las políticas de claves de AWS KMS con la versión 3 del AWS SDK para PHP

Cuando crea una AWS KMS key, determina quién puede usar y administrar esa clave KMS. Estos permisos se encuentran en un documento denominado la política de claves. Puede utilizar la política de claves para añadir, eliminar o modificar permisos en cualquier momento para una clave KMS administrada por el cliente, pero no puede editar la política de claves para una clave KMS administrada por AWS. Para obtener más información, consulte Autenticación y control de acceso para AWS KMS.

Los siguientes ejemplos muestran cómo:

Todo el código de ejemplo de AWS SDK para PHP está disponible aquí en GitHub.

Credenciales

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Autenticación AWS con la AWS SDK para PHP versión 3. A continuación, importe AWS SDK para PHP, como se indica en Instalación del AWS SDK para PHP versión 3.

Para obtener más información sobre el uso de AWS Key Management Service (AWS KMS), consulte la AWS KMS Guía del desarrollador.

Enumerar todas las políticas de claves

Para obtener los nombres de las políticas de claves de una clave KMS, utilice la operación ListKeyPolicies.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de muestra

$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 una política de claves

Para obtener la política de claves de una clave KMS, utilice la operación GetKeyPolicy.

GetKeyPolicy requiere un nombre de política. A menos que haya creado una política de claves al crear la clave KMS, el único nombre de política válido es el predeterminado. Obtenga más información sobre la política de claves predeterminada en la Guía para desarrolladores de AWS Key Management Service.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de muestra

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

Establecer una política de claves

Para establecer o cambiar una política de claves para una clave KMS, utilice la operación PutKeyPolicy.

PutKeyPolicy requiere un nombre de política. A menos que haya creado una política de claves al crear la clave KMS, el único nombre de política válido es el predeterminado. Obtenga más información sobre la política de claves predeterminada en la Guía para desarrolladores de AWS Key Management Service.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de muestra

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