Creación de una política de claves - AWS Key Management Service

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.

Creación de una política de claves

Puede crear y administrar políticas clave en la AWS KMS consola mediante operaciones de AWS KMS API, como CreateKey, y ReplicateKeyPutKeyPolicy, o mediante una AWS CloudFormation plantilla.

Al crear una clave de KMS en la AWS KMS consola, la consola le explicará los pasos necesarios para crear una política de claves basada en la política de claves predeterminada de la consola. Al utilizar las API CreateKey o ReplicateKey, si no se especifica una política de claves, estas API aplican la política de claves predeterminada para claves creadas mediante programación. Al usar la API PutKeyPolicy, es necesario especificar una política de claves.

Cada documento de política puede tener una o varias declaraciones de política. En el siguiente ejemplo se muestra un documento válido de política de claves con una declaración de política.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Describe the policy statement", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:KeySpec": "SYMMETRIC_DEFAULT" } } } ] }

Formato de la política de claves

Un documento de política de claves debe cumplir las siguientes reglas:

  • Pesar hasta 32 kilobytes (32 768 bytes)

  • El elemento Sid de una declaración de política de claves puede incluir espacios. (Se prohíben los espacios en el elemento Sid de un documento de política de IAM).

Un documento de política de claves solo puede incluir los siguientes caracteres:

  • Caracteres ASCII imprimibles

  • Caracteres imprimibles del conjunto de caracteres Basic Latin y Latin-1 Supplement

  • Caracteres especiales como la pestaña (\u0009), la fuente de línea (\u000A) y retorno de carro (\u000D)

Elementos de una política de claves

Un documento de política de claves debe tener los siguientes elementos:

Versión

Especifica la versión del documento de política de claves. Configure la versión en 2012-10-17 (la última versión).

Instrucción

Contiene las declaraciones de la política. Un documento de política de claves debe tener al menos una declaración.

Cada declaración de política de claves consta de hasta seis elementos. Los elementos Effect,Principal,Action, y Resource son necesarios.

Sid

(Opcional) El identificador de la declaración (Sid) una cadena arbitraria que puede utilizar para describir la declaración. El Sid en una política de claves puede incluir espacios. (No puede incluir espacios en un elemento Sid de política de IAM).

Efecto

(Obligatorio) Determina si desea permitir o denegar los permisos en la declaración de política. Los valores válidos son Allow o Deny. Si no permite el acceso de forma explícita a una clave KMS, el acceso se deniega implícitamente. También puede denegar explícitamente el acceso a una clave KMS. Puede hacer esto para asegurarse de que un usuario no pueda tener acceso a ella, aunque otra política le permita el acceso.

Entidad principal

(Obligatorio) La entidad principal es la identidad que obtiene los permisos especificados en la declaración de política. Puede especificar Cuentas de AWS los usuarios de IAM, las funciones de IAM y algunos AWS servicios como principales en una política clave. Los grupos de usuarios de IAM no son una entidad principal válida en ningún tipo de política.

Un valor de asterisco, como "AWS": "*", representa todas las identidades de AWS de todas las cuentas.

importante

No establezca la Entidad principal en un asterisco (*) en ninguna declaración de política de claves que permita permisos a menos que utilice condiciones para limitar la política de claves. Un asterisco indica todas las identidades de cada Cuenta de AWS permiso para usar la clave de KMS, a menos que otra declaración de política lo deniegue explícitamente. Los usuarios de otros Cuentas de AWS pueden usar su clave de KMS siempre que tengan los permisos correspondientes en su propia cuenta.

nota

Las prácticas recomendadas de IAM desalientan el uso de usuarios de IAM con credenciales a largo plazo. Siempre que sea posible, utilice los roles de IAM, que proporcionan credenciales temporales. Para obtener más información, consulte la sección Prácticas recomendadas de seguridad de IAM en la Guía del usuario de IAM;.

Cuando la entidad principal en una declaración de política de claves es una entidad principal de Cuenta de AWS se expresa como arn:aws:iam::111122223333:root", la declaración de la política no concede permisos a ninguna entidad principal de IAM. En su lugar, otorga Cuenta de AWS permiso para usar las políticas de IAM para delegar los permisos especificados en la política clave. (Una entidad principal en formato arn:aws:iam::111122223333:root" no representa al usuario raíz de la cuenta de AWS, a pesar del uso de “root” en el identificador de la cuenta. Sin embargo, la entidad principal de la cuenta representa a la cuenta y a sus administradores, incluido el usuario raíz de la cuenta).

Cuando el principal es otro Cuenta de AWS o sus directores, los permisos solo entran en vigor cuando la cuenta está habilitada en la región con la clave y la política de claves de KMS. Para obtener información acerca de las regiones que no están habilitadas de forma predeterminada (“Regiones de adhesión”), consulte Administración de Regiones de AWS en la Referencia general de AWS.

Para permitir que otro Cuenta de AWS o sus principales usuarios utilicen una clave de KMS, debes conceder el permiso en una política de claves y en una política de IAM en la otra cuenta. Para obtener más detalles, consulte Permitir a los usuarios de otras cuentas utilizar una clave KMS.

Acción

(Obligatorio) Especifique las operaciones de la API que se permitirán o denegarán. Por ejemplo, la kms:Encrypt acción corresponde a la operación de AWS KMS cifrado. Puede enumerar varias acciones en una declaración de política. Para obtener más información, consulte Referencia de permisos.

Recurso

(Obligatorio) En una política de claves, el valor del elemento Recurso es "*", que significa “esta clave KMS”. El asterisco ("*") identifica la clave KMS a la que se adjunta la política de clave.

nota

Si falta el elemento Resource requerido en una declaración de política de claves, la declaración de la política no tiene efecto. Una declaración de política de claves sin un elemento Resource no se aplica a ninguna clave KMS.

Cuando falta un Resource elemento en una declaración de política clave, la AWS KMS consola informa correctamente de un error, pero PutKeyPolicylas API CreateKeyy las API funcionan correctamente, aunque la declaración de política no sea efectiva.

Condición

(Opcional) Las condiciones especifican requisitos que deben cumplirse para que se aplique una política de claves. Con condiciones, AWS puede evaluar el contexto de una solicitud de API para determinar si la declaración de política se aplica o no.

Para especificar las condiciones, se utilizan claves de condición predefinidas. AWS KMS admite claves de condición AWS globales y claves de AWS KMS condición. Para admitir el control de acceso basado en atributos (ABAC), AWS KMS proporciona claves de condición que controlan el acceso a una clave KMS en función de etiquetas y alias. Para obtener más detalles, consulte ABAC para AWS KMS.

El formato de una condición es:

"Condition": {"condition operator": {"condition key": "condition value"}}

por ejemplo:

"Condition": {"StringEquals": {"kms:CallerAccount": "111122223333"}}

Para obtener más información sobre la sintaxis de las AWS políticas, consulte la Referencia de políticas de AWS IAM en la Guía del usuario de IAM.

Política de claves de ejemplo

En el siguiente ejemplo se muestra una política de claves completa para una clave KMS de cifrado simétrica. Puede utilizarlo como referencia mientras lee acerca de los conceptos de política de claves de este capítulo. Esta política de claves combina los ejemplos de declaraciones de política de la sección política de claves predeterminada anterior en una sola política de claves que lleva a cabo lo siguiente:

  • Permite al ejemplo Cuenta de AWS 111122223333 tener acceso total a la clave KMS. Permite que la cuenta y sus administradores, incluido el usuario raíz de la cuenta (para emergencias), utilicen las políticas de IAM en la cuenta para permitir el acceso a la clave KMS.

  • Permite que el rol de IAM ExampleAdminRole administre la clave de KMS.

  • Permite que el rol de IAM ExampleUserRole utilice la clave KMS.

{ "Id": "key-consolepolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleAdminRole" }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion", "kms:RotateKeyOnDemand" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }