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 for 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:
-
Enumere los nombres de las políticas clave que se utilizan ListKeyPolicies.
-
Obtenga una política clave utilizando GetKeyPolicy.
-
Establezca una política clave utilizando PutKeyPolicy.
Todo el código de ejemplo para el AWS SDK for PHP está disponible aquí en GitHub
Credenciales
Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credenciales. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.
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"; }