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.
Permitir a los usuarios de otras cuentas utilizar una clave KMS
Puede permitir que los usuarios o roles de una Cuenta de AWS usen una clave KMS en su cuenta. El acceso entre cuentas requiere permiso en la política de claves de la clave KMS y en una política de IAM en la cuenta del usuario externo.
El permiso entre cuentas solo es efectivo para las siguientes operaciones:
Si concede a un usuario de otra cuenta permiso para otras operaciones, esos permisos no surten efecto. Por ejemplo, si otorga una entidad principal de una cuenta diferente kms:ListKeys permiso en una política de IAM, o kms:ScheduleKeyDeletition en una clave KMS en una política de clave, los intentos del usuario de llamar a esas operaciones en sus recursos siguen fallando.
Para obtener más información sobre el uso de claves KMS en diferentes cuentas para las operaciones AWS KMS, consulte la columna Cross-account use (Uso entre cuentas) en AWS KMS permisos y Uso de claves KMS en otras cuentas. También hay una sección Cross-account use (Uso entre cuentas) en cada descripción de la API en la Referencia de la API de AWS Key Management Service.
aviso
Tenga cuidado al conceder permisos a las principales entidades para usar las claves KMS. Siempre que sea posible, siga el principio del mínimo privilegio. Proporcione a los usuarios acceso solo a las claves KMS que necesitan para las operaciones que requieren.
Además, tenga cuidado con el uso de cualquier clave KMS desconocida, especialmente una clave KMS en una cuenta diferente. Es posible que los usuarios malintencionados le den permisos para usar su clave KMS para obtener información sobre usted o su cuenta.
Para obtener más información sobre el uso de políticas de para proteger los recursos de su cuenta, consulte Prácticas recomendadas para las políticas de IAM.
Para conceder a permiso para utilizar una clave KMS a los usuarios y roles de otra cuenta, debe utilizar dos tipos diferentes de políticas:
-
La política de claves de la clave KMS debe conceder a la cuenta externa (o a los usuarios y roles de la cuenta externa) permiso para utilizar la clave KMS. La política de claves está en la cuenta propietaria de la clave KMS.
-
Las políticas de IAM de la cuenta externa debe delegar los permisos de política de claves de a sus usuarios y roles. Estas políticas se establecen en la cuenta externa y otorgan permisos para los usuarios y roles de esa cuenta.
La política de claves determina quién puede tener acceso a la clave KMS. La política de IAM determina quién sí tiene acceso a la clave KMS. Ni la política de claves ni la política de IAM solas son suficientes, debe cambiar ambas.
Para editar la política de claves, puede utilizar la Vista de políticas en la AWS Management Console o utilizar las operaciones CreateKey o PutKeyPolicy.
Para obtener ayuda con la edición de políticas de IAM, consulte Uso de políticas de IAM con AWS KMS.
Para ver un ejemplo que muestra cómo la política de claves y las políticas de IAM se combinan para permitir el uso de una clave KMS en una cuenta diferente, consulte Ejemplo 2: El usuario asume un rol con permiso para utilizar una clave KMS en una Cuenta de AWS diferente.
Puede ver las resultantes operaciones de AWS KMS entre cuentas en la clave KMS de sus registros de AWS CloudTrail. Las operaciones que utilizan claves KMS en otras cuentas se registran tanto en la cuenta del autor de la llamada como en la cuenta del propietario de la clave KMS.
Temas
nota
En los ejemplos de este tema, se muestra cómo utilizar juntas una política de claves y una política de IAM para proporcionar y limitar el acceso a una clave KMS. Estos ejemplos genéricos no pretenden representar los permisos que ningún Servicio de AWS particular requiere en una clave KMS. Para obtener más información acerca de los permisos que requiere un Servicio de AWS, consulte el tema de cifrado en la documentación del servicio.
Paso 1: Agregar una declaración de política de claves en la cuenta local
La política de claves de una clave KMS es el principal determinante de quién puede obtener acceso a la clave KMS y qué operaciones puede realizar. La política de claves siempre se define en la cuenta propietaria de la clave KMS. A diferencia de las políticas de IAM, las políticas de claves no especifican ningún recurso. El recurso es la clave KMS asociada a la política de claves. Al proporcionar permiso entre cuentas, la política de claves de la clave KMS debe conceder a la cuenta externa (o a los usuarios y roles de la cuenta externa) permiso para utilizar la clave KMS.
Para conceder a una cuenta externa permiso para utilizar la clave KMS, agregue una declaración a la política de claves que especifique la cuenta externa. En el elemento Principal
de la política de claves, escriba el nombre de recurso de Amazon (ARN) de la cuenta externa.
Al especificar una cuenta externa en una política de claves, los administradores de IAM de la cuenta externa pueden utilizar políticas de IAM para delegar esos permisos a cualquier usuario y rol de la cuenta externa. También pueden decidir qué acciones especificadas en la política de claves pueden realizar los usuarios y roles.
Los permisos otorgados a la cuenta externa y sus entidades principales solo son efectivos si la cuenta externa está habilitada en la región que aloja la clave KMS y su 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.
Por ejemplo, suponga que desea permitir que la cuenta 444455556666
utilice una clave KMS de cifrado simétrica en la cuenta 111122223333
. Para ello, agregue una declaración de política como la del siguiente ejemplo a la política de claves de la clave KMS de la cuenta 111122223333
. Esta declaración de política concede a la cuenta externa, 444455556666
, permiso para utilizar la clave KMS en operaciones criptográficas para claves KMS de cifrado simétricas.
nota
El siguiente ejemplo representa un ejemplo de política de claves para compartir una clave KMS con otra cuenta. Sustituya los valores de Sid
, Principal
y Action
de ejemplo por valores válidos para el uso previsto de su clave KMS.
{ "Sid": "
Allow an external account to use this KMS key
", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:root
" ] }, "Action": ["kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey"
], "Resource": "*" }
En lugar de conceder permiso a la cuenta externa, puede especificar usuarios y roles externos concretos en la política de claves. Sin embargo, esos usuarios y roles de no pueden utilizar la clave KMS hasta que los administradores de IAM de la cuenta externa asocien las políticas de IAM adecuadas a sus identidades. Las políticas de IAM pueden conceder permiso a todos o a un subconjunto de los usuarios y roles externos que se especifican en la política de claves. Y pueden permitir todas o un subconjunto de las acciones especificadas en la política de claves.
Especificar identidades en una política de claves restringe los permisos que los administradores de IAM de la cuenta externa pueden proporcionar. Sin embargo, hace que la administración de políticas con dos cuentas sea más compleja. Por ejemplo, suponga que necesita agregar un usuario o rol. Debe agregar dicha identidad a la política de claves en la cuenta propietaria de la clave KMS y crear políticas de IAM en la cuenta de la identidad.
Para especificar usuarios o roles externos concretos en una política de claves, en el elemento Principal
, escriba el nombre de recurso de Amazon (ARN) de un usuario o rol en la cuenta externa.
Por ejemplo, la siguiente declaración de política de claves de ejemplo permite a ExampleRole
de la cuenta 444455556666
utilizar una clave KMS en la cuenta 111122223333
. Esta declaración de política de claves concede a la cuenta externa, 444455556666
, permiso para utilizar la clave KMS en operaciones criptográficas para claves KMS de cifrado simétricas.
nota
El siguiente ejemplo representa un ejemplo de política de claves para compartir una clave KMS con otra cuenta. Sustituya los valores de Sid
, Principal
y Action
de ejemplo por valores válidos para el uso previsto de su clave KMS.
{ "Sid": "
Allow an external account to use this KMS key
", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::444455556666:role/ExampleRole"
}, "Action": ["kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey"
], "Resource": "*" }
nota
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.
También debe decidir qué permisos desea conceder a la cuenta externa. Por ejemplo, es posible que desee conceder a los usuarios permiso para descifrar pero no cifrar, o permiso para ver la clave KMS pero no utilizarla. Para obtener una lista de permisos sobre las claves KMS, consulte AWS KMS permisos.
- Definición de la política de claves predeterminada al crear una clave KMS
-
Cuando utiliza la operación CreateKey para crear una clave KMS, puede utilizar su parámetro
Policy
para especificar una política de claves que conceda a una cuenta externa, o usuarios externos y roles externos, permiso para utilizar la clave KMS.Al crear una clave KMS en la AWS Management Console, también debe crear su política de claves. Al seleccionar identidades en las secciones Key Administrators (Administradores de claves) y Key Users (Usuarios de claves), AWS KMS agrega declaraciones de política para esas identidades a la política de claves de la clave KMS. La sección Key Users (Usuarios de claves) también le permite agregar cuentas externas como usuarios de claves.
Al escribir el ID de cuenta de una cuenta externa, AWS KMS agrega dos declaraciones a la política de claves. Esta acción solo afecta a la política de claves. Los usuarios y roles de la cuenta externa no pueden utilizar la clave KMS hasta que se asocien políticas de IAM para concederles algunos o todos estos permisos.
La primera declaración de la política de claves concede a la cuenta externa permiso para utilizar la clave KMS en operaciones criptográficas. La segunda declaración de la política de claves permite a la cuenta externa crear, ver y revocar concesiones en la clave KMS, pero solo cuando la solicitud proviene de un servicio de AWS integrado con AWS KMS
. Estos permisos permiten que otros servicios de AWS que cifran datos de usuario utilicen la clave KMS. Estos permisos están diseñados para las claves KMS que cifran los datos de usuario en los servicios de AWS
Paso 2: Agregar políticas de IAM a la cuenta externa
La política de claves de la cuenta propietaria de la clave KMS establece el rango válido de permisos. Sin embargo, los usuarios y roles de la cuenta externa no pueden utilizar la clave KMS hasta que adjunte políticas de IAM que deleguen esos permisos o utilice concesiones para administrar el acceso a la clave KMS. Las políticas de IAM se establecen en la cuenta externa.
Si la política de claves concede permiso a la cuenta externa, puede asociar políticas de IAM a cualquier usuario o rol de la cuenta. Sin embargo, si la política de claves concede permiso a usuarios o roles especificados, la política de IAM solo puede conceder esos permisos a todos o a un subconjunto de los usuarios y roles especificados. Si una política de IAM concede a la clave KMS acceso a otros usuarios o roles externos, no tiene ningún efecto.
La política de claves también limita las acciones de la política de IAM. La política de IAM puede delegar todas o un subconjunto de las acciones especificadas en la política de claves. Si la política de IAM enumera acciones que no se especifican en la política de claves, esos permisos no son efectivos.
La siguiente política de IAM de ejemplo permite a la entidad principal utilizar la clave KMS en la cuenta de 111122223333
para operaciones criptográficas. Para conceder este permiso a los usuarios y roles de la cuenta 444455556666
, asocie la política a los usuarios o roles de la cuenta 444455556666
.
nota
El siguiente ejemplo representa un ejemplo de política de IAM para compartir una clave KMS con otra cuenta. Sustituya los valores de Sid
, Resource
y Action
de ejemplo por valores válidos para el uso previsto de su clave KMS.
{ "Sid": "
AllowUseOfKeyInAccount111122223333
", "Effect": "Allow", "Action": ["kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey"
], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
" }
Tenga en cuenta los siguientes detalles sobre esta política:
-
A diferencia de las políticas de claves, las declaraciones de política de IAM no contienen el elemento
Principal
. En las políticas de IAM, la entidad principal es la identidad a la que está asociada la política. -
El elemento de
Resource
de la política de IAM identifica la clave KMS que la entidad principal puede utilizar. Para especificar una clave KMS, agregue el ARN de la clave al elementoResource
. -
Puede especificar más de una clave KMS en el elemento
Resource
. Sin embargo, si no especifica determinadas claves KMS en el elementoResource
, es posible que conceda acceso de forma inadvertida a más clave KMS de las que pretendía. -
Para permitir al usuario externo utilizar la clave KMS con servicios de AWS que se integran con AWS KMS
, es posible que tenga que agregar permisos a la política de claves o a la política de IAM. Para obtener más información, consulte Permitir el uso de claves KMS externas con Servicios de AWS.
Para obtener más información sobre el uso de las políticas de IAM, consulte Políticas de IAM.
Permitir el uso de claves KMS externas con Servicios de AWS
Puede conceder a un usuario de otra cuenta permiso para utilizar su clave KMS con un servicio integrado con AWS KMS. Por ejemplo, un usuario de una cuenta externa puede utilizar su clave KMS para cifrar los objetos en un bucket de Amazon S3 o para cifrar los secretos que almacenan en AWS Secrets Manager.
La política de claves debe conceder al usuario externo o a la cuenta del usuario externo permiso para utilizar la clave KMS. Además, debe asociar políticas de IAM a la identidad que concede al usuario permiso para utilizar el Servicio de AWS. Además, el servicio podría requerir que los usuarios tengan permisos adicionales en la política de claves o política de IAM. Para obtener una lista de permisos que Servicio de AWS requiere una clave administrada por el cliente, consulte el tema Protección de datos en el capítulo de Seguridad de la guía del usuario o la guía para desarrolladores del servicio.
Uso de claves KMS en otras cuentas
Si tiene permiso para usar una clave KMS en un Cuenta de AWS diferente, puede usar la clave KMS en la AWS Management Console, las SDK de AWS, AWS CLI y AWS Tools for PowerShell.
Para identificar una clave KMS en una cuenta diferente en un comando de shell o solicitud de la API, utilice los siguientes identificadores clave.
-
Para operaciones criptográficas, DescribeKey y GetPublicKey, utilice el ARN de clave o ARN de aliasde la clave KMS.
-
Para CreateGrant, GetKeyRotationStatus, ListGrants y RevokeGrant, utilice la clave ARN de la clave KMS.
Si solo introduce un ID de clave o un nombre de alias, AWS supone que la clave KMS está en su cuenta.
La consola AWS KMS no muestra claves KMS en otras cuentas, incluso si tiene permiso para usarlas. Además, las listas de claves KMS mostradas en las consolas de otros servicios de AWS no incluyen claves KMS en otras cuentas.
Para especificar una clave KMS en una cuenta diferente de la consola de un servicio de AWS, debe introducir la clave ARN o el alias ARN de la clave KMS. El identificador de clave requerido varía según el servicio y podría diferir entre la consola de servicio y sus operaciones de API. Para conocer detalles, consulte la documentación del servicio.