Creación de una política de claves
Puede crear y administrar políticas de claves en la consola de AWS KMS o mediante operaciones de la API de AWS KMS, como CreateKey, ReplicateKey y PutKeyPolicy.
Al crear una clave KMS en la consola de AWS KMS, ésta le guía a través de los pasos 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.
Temas
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
Sidde una declaración de política de claves puede incluir espacios. (Se prohíben los espacios en el elementoSidde 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, yResourceson necesarios.- Sid
-
(Opcional) El identificador de la declaración (
Sid) una cadena arbitraria que puede utilizar para describir la declaración. ElSiden una política de claves puede incluir espacios. (No puede incluir espacios en un elementoSidde 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
AllowoDeny. 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. - 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, usuarios de IAM, roles de IAM y algunos servicios de AWS como entidades principales en una política de claves. 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 da cada identidad en cada permiso de Cuenta de AWS para utilizar la clave de KMS, a menos que otra declaración de política lo deniegue explícitamente. Los usuarios de otras Cuentas de AWS pueden usar la clave de KMS siempre que tengan los permisos correspondientes en sus propias cuentas.
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::, la declaración de la política no concede permisos a ninguna entidad principal de IAM. En su lugar, concede los permisos de Cuenta de AWS para utilizar las políticas de IAM a fin de delegar los permisos especificados en la política de claves. (Una entidad principal en formato111122223333:root"arn:aws:iam::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).111122223333:root"Cuando la entidad principal es otra Cuenta de AWS o sus entidades principales, los permisos solo son efectivos cuando la cuenta está habilitada en la región con la clave KMS y la política de clave. 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 una cuenta de Cuenta de AWS diferente o sus entidades principales utilicen una clave KMS, debe proporcionarle permisos mediante una política de claves y una política de IAM en la otra cuenta. Para obtener más información, 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 acción
kms:Encryptse corresponde con la operación de la AWS KMS Encrypt. Puede enumerar varias acciones en una declaración de política. Para obtener más información, consulte Referencia de permisos.nota
Si falta el elemento
Actionrequerido 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 elementoActionno se aplica a ninguna clave KMS.Cuando a una declaración de política clave le falta su elemento
Action, la consola de AWS KMS informa correctamente de un error, pero las API CreateKey y PutKeyPolicy funcionan correctamente, aunque la declaración de política no sea efectiva. - 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
Resourcerequerido 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 elementoResourceno se aplica a ninguna clave KMS.Cuando a una declaración de política clave le falta su elemento
Resource, la consola de AWS KMS informa correctamente de un error, pero las API CreateKey y PutKeyPolicy 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 las condiciones, AWS puede evaluar el contexto de una solicitud de la API para determinar si se aplica la declaración de política.
Para especificar condiciones, se utilizan claves de condición predeterminadas. AWS KMS es compatible con las claves de condición global de AWS y las claves de condición de AWS KMS. 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 basándose en etiquetas y alias. Para obtener más información, 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 políticas de AWS, consulte la Referencia de políticas de IAM de AWS 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 a la Cuenta de AWS de ejemplo, 111122223333, 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
ExampleAdminRoleadministre la clave de KMS. -
Permite que el rol de IAM
ExampleUserRoleutilice la clave KMS.