Autenticación y control de acceso de AWS KMS - 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.

Autenticación y control de acceso de AWS KMS

Para utilizar AWS KMS, debe tener credenciales que AWS pueda utilizar para autenticar las solicitudes. Las credenciales deben incluir permisos para obtener acceso a los recursos de AWS, AWS KMS keys y alias. Ninguna entidad principal de AWS tiene permisos para una clave KMS, a menos que dicho permiso se proporcione explícitamente y nunca se deniegue. No hay permisos implícitos ni automáticos para usar o administrar una clave KMS.

La forma principal de administrar el acceso a sus recursos de AWS KMS es a través de políticas. Las políticas son documentos que describen qué entidades principales pueden acceder a qué recursos. Las políticas adjuntadas a una identidad de IAM se denominan políticas basadas en identidad (o políticas de IAM) y las políticas adjuntadas a otros tipos de recursos se denominan políticas de recursos. Las políticas de recursos de AWS KMS para las claves KMS se denominan políticas de claves. Todas las claves KMS tienen una política de claves.

Para controlar el acceso a sus alias de AWS KMS, utilice las políticas de IAM. Para permitir que las entidades principales creen alias, debe proporcionar el permiso al alias en una política de IAM y el permiso a la clave en una política de claves. Para obtener más detalles, consulte Control del acceso a alias.

Para controlar el acceso a las claves KMS, puede utilizar los siguientes mecanismos de políticas.

  • Política de claves: cada clave KMS tiene una política de claves. Es el mecanismo principal para controlar el acceso a una clave KMS. Puede utilizar solo la política de claves para controlar el acceso, lo que significa que el ámbito completo de acceso a la clave KMS se define en un único documento (la política de claves). Para obtener más información sobre el uso de políticas de claves, consulte Políticas de claves.

  • Políticas de IAM: puede utilizar políticas de IAM en combinación con la política de claves y subvenciones para controlar el acceso a una clave KMS. Este modo de controlar el acceso le permite administrar todos los permisos de las identidades de IAM en IAM. Para utilizar una política de IAM a fin de permitir el acceso a una clave KMS, la política de claves debe permitirlo explícitamente. Para obtener más información sobre el uso de políticas de IAM, consulte Políticas de IAM.

  • Concesiones: puede utilizar concesiones en combinación con la política de claves y políticas de IAM para permitir el acceso a una clave KMS. Con este modo de controlar el acceso, puede permitir el acceso a la clave KMS en la política de claves y permitir que las identidades deleguen su acceso a otros. Para obtener más información sobre cómo usar concesiones, consulte Concesiones en AWS KMS.

Las claves de KMS pertenecen a la cuenta de AWS en la que se crearon. Sin embargo, ninguna identidad ni entidad principal, incluido el usuario raíz de la cuenta de AWS, tiene permiso para usar o administrar una clave KMS, a menos que ese permiso se proporcione explícitamente en una política de claves, una política de IAM o una concesión. La identidad de IAM que crea una clave KMS no se considera el propietaria de la clave y no tiene permiso automáticamente para usar o administrar la clave KMS que creó. Al igual que cualquier otra identidad, el creador de la clave necesita obtener permiso a través de una política de claves, una política de IAM o una concesión. Sin embargo, las identidades que tienen el permiso de kms:CreateKey pueden establecer la política de clave inicial y darse permiso a ellas mismas para usar o administrar la clave.

Los siguientes temas brindan detalles sobre cómo puede utilizar los permisos de AWS Identity and Access Management (IAM) y AWS KMS para ayudar a proteger sus recursos controlando quién puede obtener acceso a ellos.

Conceptos sobre el control de acceso de AWS KMS

Aprenda los conceptos utilizados en las conversaciones sobre el control de acceso en AWS KMS.

Autenticación

La autenticación es el proceso de verificación de su identidad. Para enviar una solicitud a AWS KMS, debe iniciar sesión en AWS con sus credenciales de AWS.

Autorización

La autorización proporciona el permiso para enviar solicitudes para crear, administrar o utilizar recursos AWS KMS. Por ejemplo, debe estar autorizado a utilizar una clave KMS en una operación criptográfica.

Use políticas de claves, políticas de IAM y concesiones para controlar el acceso a sus recursos de AWS KMS. Cada clave de KMS debe tener una política de claves. Si la política de claves lo permite, también puede utilizar las políticas y autorizaciones de IAM para conceder acceso a la clave KMS a las entidades principales. Para restringir la autorizaciones, puede utilizar claves de condición que pueden permitir o denegar el acceso solo cuando una solicitud o recurso cumple las condiciones que especifica. También puede permitir el acceso a las entidades principales en las que confía en otras cuentas de Cuentas de AWS.

Autenticación con identidades

La autenticación es la manera de iniciar sesión en AWS mediante credenciales de identidad. Debe estar autenticado (haber iniciado sesión en AWS) como Usuario raíz de la cuenta de AWS, como un usuario de IAM o asumiendo un rol de IAM.

Puede iniciar sesión en AWS como una identidad federada mediante las credenciales proporcionadas a través de una fuente de identidad de AWS IAM Identity Center. Los usuarios (del IAM Identity Center), la autenticación de inicio de sesión único de su empresa y sus credenciales de Google o Facebook son ejemplos de identidades federadas. Al iniciar sesión como una identidad federada, su administrador habrá configurado previamente la federación de identidades mediante roles de IAM. Cuando accede a AWS mediante la federación, está asumiendo un rol de forma indirecta.

Según el tipo de usuario que sea, puede iniciar sesión en la AWS Management Console o en el portal de acceso a AWS. Para obtener más información sobre el inicio de sesión en AWS, consulte Cómo iniciar sesión en su Cuenta de AWS en la Guía del usuario de AWS Sign-In.

Si accede a AWS mediante programación, AWS proporciona un kit de desarrollo de software (SDK) y una interfaz de la línea de comandos (CLI) para firmar criptográficamente las solicitudes mediante el uso de las credenciales. Si no utiliza las herramientas de AWS, debe firmar usted mismo las solicitudes. Para obtener más información sobre el método recomendado para la firma de solicitudes, consulte Firma de solicitudes API de AWS en la Guía del usuario de IAM.

Independientemente del método de autenticación que utilice, es posible que deba proporcionar información de seguridad adicional. Por ejemplo, AWS le recomienda el uso de la autenticación multifactor (MFA) para aumentar la seguridad de su cuenta. Para obtener más información, consulte Autenticación multifactor en la Guía del usuario de AWS IAM Identity Center y Uso de la autenticación multifactor (MFA) en AWS en la Guía del usuario de IAM.

Usuario raíz de Cuenta de AWS

Cuando se crea una Cuenta de AWS, se comienza con una identidad de inicio de sesión que tiene acceso completo a todos los recursos y Servicios de AWS de la cuenta. Esta identidad recibe el nombre de usuario raíz de la Cuenta de AWS y se accede a ella iniciando sesión con el email y la contraseña que utilizó para crear la cuenta. Recomendamos encarecidamente que no utilice el usuario raíz para sus tareas diarias. Proteja las credenciales del usuario raíz y utilícelas solo para las tareas que solo el usuario raíz pueda realizar. Para ver la lista completa de las tareas que requieren que inicie sesión como usuario raíz, consulte Tareas que requieren credenciales de usuario raíz en la Guía del usuario de IAM.

Identidad federada

Como práctica recomendada, solicite que los usuarios humanos, incluidos los que requieren acceso de administrador, utilicen la federación con un proveedor de identidades para acceder a Servicios de AWS utilizando credenciales temporales.

Una identidad federada es un usuario del directorio de usuarios de su empresa, un proveedor de identidad web, el AWS Directory Service, el directorio del Identity Center, o cualquier usuario que acceda a Servicios de AWS utilizando credenciales proporcionadas a través de una fuente de identidad. Cuando identidades federadas acceden a las Cuentas de AWS, asumen roles y los roles proporcionan credenciales temporales.

Para una administración de acceso centralizada, le recomendamos que utilice AWS IAM Identity Center. Puede crear usuarios y grupos en el IAM Identity Center o puede conectarse y sincronizar con un conjunto de usuarios y grupos de su propia fuente de identidad para usarlos en todas sus aplicaciones y Cuentas de AWS. Para obtener más información, consulte ¿Qué es el IAM Identity Center? en la Guía del usuario de AWS IAM Identity Center.

Usuarios y grupos de IAM

Un usuario de IAM es una identidad en su Cuenta de AWS que dispone de permisos específicos para una sola persona o aplicación. Siempre que sea posible, recomendamos emplear credenciales temporales, en lugar de crear usuarios de IAM que tengan credenciales de larga duración como contraseñas y claves de acceso. No obstante, si tiene casos de uso específicos que requieran credenciales de larga duración con usuarios de IAM, recomendamos rotar las claves de acceso. Para más información, consulte Rotar las claves de acceso periódicamente para casos de uso que requieran credenciales de larga duración en la Guía del Usuario de IAM.

Un grupo de IAM es una identidad que especifica un conjunto de usuarios de IAM. No puede iniciar sesión como grupo. Puede usar los grupos para especificar permisos para varios usuarios a la vez. Los grupos facilitan la administración de los permisos de grandes conjuntos de usuarios. Por ejemplo, podría tener un grupo cuyo nombre fuese IAMAdmins y conceder permisos a dicho grupo para administrar los recursos de IAM.

Los usuarios son diferentes de los roles. Un usuario se asocia exclusivamente a una persona o aplicación, pero la intención es que cualquier usuario pueda asumir un rol que necesite. Los usuarios tienen credenciales permanentes a largo plazo y los roles proporcionan credenciales temporales. Para más información, consulte Cuándo crear un usuario de IAM (en lugar de un rol) en la Guía del Usuario de IAM.

Roles de IAM

Un rol de IAM es una identidad de tu Cuenta de AWS que dispone de permisos específicos. Es similar a un usuario de IAM, pero no está asociado a una determinada persona. Puede asumir temporalmente un rol de IAM en la AWS Management Consolecambiando de roles. Puede asumir un rol llamando a una operación de AWS CLI o de la API de AWS, o utilizando una URL personalizada. Para más información sobre los métodos para el uso de roles, consulte Uso de roles de IAM en la Guía del Usuario de IAM.

Los roles de IAM con credenciales temporales son útiles en las siguientes situaciones:

  • Acceso de usuario federado: para asignar permisos a una identidad federada, puede crear un rol y definir sus permisos. Cuando se autentica una identidad federada, se asocia la identidad al rol y se le conceden los permisos define el rol. Para obtener información acerca de roles para federación, consulte Creación de un rol para un proveedor de identidades de terceros en la Guía del Usuario de IAM. Si utiliza el IAM Identity Center, debe configurar un conjunto de permisos. El IAM Identity Center correlaciona el conjunto de permisos con un rol en IAM para controlar a qué pueden acceder las identidades después de autenticarse. Para obtener información acerca de los conjuntos de permisos, consulte Conjuntos de permisos en la Guía del usuario de AWS IAM Identity Center.

  • Permisos de usuario de IAM temporales: un usuario de IAM puede asumir un rol de IAM para recibir temporalmente permisos distintos que le permitan realizar una tarea concreta.

  • Acceso entre cuentas: puede utilizar un rol de IAM para permitir que alguien (una entidad principal de confianza) de otra cuenta acceda a los recursos de la cuenta. Los roles son la forma principal de conceder acceso entre cuentas. No obstante, con algunos Servicios de AWS se puede asociar una política directamente a un recurso (en lugar de utilizar un rol como representante). Para obtener información sobre la diferencia entre los roles y las políticas basadas en recursos para el acceso entre cuentas, consulte Cómo los roles de IAM difieren de las políticas basadas en recursos en la Guía del usuario de IAM.

  • Acceso entre servicios: algunos Servicios de AWS utilizan características de otros Servicios de AWS. Por ejemplo, cuando realiza una llamada en un servicio, es común que ese servicio ejecute aplicaciones en Amazon EC2 o almacene objetos en Amazon S3. Es posible que un servicio haga esto usando los permisos de la entidad principal, usando un rol de servicio o usando un rol vinculado a servicios.

    • Reenviar sesiones de acceso (FAS): cuando utiliza un rol o un usuario de IAM para llevar a cabo acciones en AWS, se le considera una entidad principal. Cuando utiliza algunos servicios, es posible que realice una acción que desencadene otra acción en un servicio diferente. FAS utiliza los permisos de la entidad principal para llamar a un Servicio de AWS, combinados con el Servicio de AWS solicitante para realizar solicitudes a servicios posteriores. Las solicitudes de FAS solo se realizan cuando un servicio recibe una solicitud que requiere interacciones con otros Servicios de AWS o recursos para completarse. En este caso, debe tener permisos para realizar ambas acciones. Para obtener información sobre las políticas a la hora de realizar solicitudes de FAS, consulte Reenviar sesiones de acceso.

    • Rol de servicio: un rol de servicio es un rol de IAM que adopta un servicio para realizar acciones en su nombre. Un administrador de IAM puede crear, modificar y eliminar un rol de servicio desde IAM. Para obtener más información, consulte Creación de un rol para delegar permisos a un Servicio de AWS en la Guía del usuario de IAM.

    • Rol vinculado al servicio: un rol vinculado al servicio es un tipo de rol de servicio que está vinculado a un Servicio de AWS. El servicio puede asumir el rol para realizar una acción en su nombre. Los roles vinculados a servicios aparecen en la Cuenta de AWS y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios.

  • Aplicaciones que se ejecutan en Amazon EC2: puede utilizar un rol de IAM que le permita administrar credenciales temporales para las aplicaciones que se ejecutan en una instancia de EC2 y realizan solicitudes a la AWS CLI o a la API de AWS. Es preferible hacerlo de este modo a almacenar claves de acceso en la instancia EC2. Para asignar un rol de AWS a una instancia de EC2 y ponerla a disposición de todas las aplicaciones, cree un perfil de instancia asociado a la instancia. Un perfil de instancia contiene el rol y permite a los programas que se ejecutan en la instancia EC2 obtener credenciales temporales. Para obtener más información, consulte Uso de un rol de IAM para conceder permisos a aplicaciones que se ejecutan en instancias de Amazon EC2 en la Guía del usuario de IAM.

Para obtener información sobre el uso de los roles de IAM, consulte Cuándo crear un rol de IAM (en lugar de un usuario) en la Guía del usuario de IAM.

Administración de acceso mediante políticas

Para controlar el acceso en AWS, se crean políticas y se adjuntan a identidades o recursos de AWS. Una política es un objeto de AWS que, cuando se asocia a una identidad o un recurso, define sus permisos. AWS evalúa estas políticas cuando una entidad principal (sesión de rol, usuario o usuario raíz) realiza una solicitud. Los permisos en las políticas determinan si la solicitud se permite o se deniega. La mayoría de las políticas se almacenan en AWS como documentos JSON. Para obtener más información sobre la estructura y el contenido de los documentos de política JSON, consulte Información general de las políticas JSON en la Guía del Usuario de IAM.

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

De forma predeterminada, los usuarios y los roles no tienen permisos. Para conceder permiso a los usuarios para realizar acciones en los recursos que necesiten, un administrador puede crear políticas de IAM. A continuación, el administrador puede añadir las políticas de IAM a roles y los usuarios pueden asumirlos.

Las políticas de IAM definen permisos para una acción independientemente del método que se utilice para realizar la operación. Por ejemplo, suponga que dispone de una política que permite la acción iam:GetRole. Un usuario con dicha política puede obtener información del rol de la AWS Management Console, la AWS CLI o la API de AWS.

Políticas basadas en identidades

Las políticas basadas en identidades son documentos de políticas de permisos JSON que puede adjuntar a una identidad, como un usuario, un grupo de usuarios o un rol de IAM. Estas políticas controlan qué acciones pueden realizar los usuarios y los roles, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en identidad, consulte Creación de políticas de IAM en la Guía del usuario de IAM.

Las políticas basadas en identidades pueden clasificarse además como políticas insertadas o políticas administradas. Las políticas insertadas se integran directamente en un único usuario, grupo o rol. Las políticas administradas son políticas independientes que puede asociar a varios usuarios, grupos y roles de su Cuenta de AWS. Las políticas administradas incluyen las políticas administradas de AWS y las políticas administradas por el cliente. Para obtener más información sobre cómo elegir una política administrada o una política insertada, consulte Elegir entre políticas administradas y políticas insertadas en la Guía del usuario de IAM.

Políticas basadas en recursos

Una política clave AWS KMS es una política basada en recursos que controla el acceso a una clave KMS. Cada clave de KMS debe tener una política de claves. Puede utilizar otro mecanismo de autorizaciones para permitir el acceso a la clave KMS, pero solo si la política de claves lo permite. (Puede utilizar una política de IAM para denegar el acceso a una clave KMS incluso si la política de claves no lo permite explícitamente).

Las políticas basadas en recursos son documentos de política JSON que puede asociar a un recurso, como, por ejemplo, una clave KMS, para controlar el acceso a un recurso específico. Las políticas basadas en recursos definen las acciones que puede realizar una entidad principal en ese recurso y en qué condiciones. No especifica el recurso en una política basada en recursos, pero debe especificar una entidad principal, como cuentas, usuarios, roles, usuarios federados o Servicios de AWS. Las políticas basadas en recursos son políticas insertadas que se encuentran en ese servicio que administra el recurso. No puede utilizar políticas de IAM administradas por AWS, como la política administrada de AWSKeyManagementServicePowerUser en una política basada en recursos.

Listas de control de acceso (ACL)

Las listas de control de acceso (ACL) controlan qué entidades principales (miembros de cuentas, usuarios o roles) tienen permisos para acceder a un recurso. Las ACL son similares a las políticas basadas en recursos, aunque no utilizan el formato de documento de políticas JSON.

Amazon S3, AWS WAF y Amazon VPC son ejemplos de servicios que admiten las ACL. Para obtener más información sobre las ACL, consulte Información general de Lista de control de acceso (ACL) en la Guía para Desarrolladores de Amazon Simple Storage Service.

AWS KMS no es compatible con los ACL.

Otros tipos de políticas

AWS admite otros tipos de políticas adicionales menos frecuentes. Estos tipos de políticas pueden establecer el máximo de permisos que los tipos de políticas más frecuentes le conceden.

  • Límites de permisos: un límite de permisos es una característica avanzada que le permite establecer los permisos máximos que una política basada en identidad puede conceder a una entidad de IAM (usuario o rol de IAM). Puede establecer un límite de permisos para una entidad. Los permisos resultantes son la intersección de las políticas basadas en la identidad de la entidad y los límites de permisos. Las políticas basadas en recursos que especifiquen el usuario o rol en el campo Principal no estarán restringidas por el límite de permisos. Una denegación explícita en cualquiera de estas políticas anulará el permiso. Para obtener más información sobre los límites de los permisos, consulte Límites de permisos para las entidades de IAM en la Guía del Usuario de IAM.

  • Políticas de control de servicio (SCP): las SCP son políticas de JSON que especifican los permisos máximos de una organización o una unidad organizativa en AWS Organizations. AWS Organizations es un servicio que le permite agrupar y administrar de manera centralizada varias Cuentas de AWS que posea su empresa. Si habilita todas las características en una empresa, entonces podrá aplicar políticas de control de servicio (SCP) a una o todas sus cuentas. Una SCP limita los permisos para las entidades de las cuentas de miembros, incluido cada Usuario raíz de la cuenta de AWS. Para obtener más información acerca de Organizations y las SCP, consulte Funcionamiento de las SCP en la Guía del usuario AWS Organizations.

  • Políticas de sesión: las políticas de sesión son políticas avanzadas que se pasan como parámetro cuando se crea una sesión temporal mediante programación para un rol o un usuario federado. Los permisos de la sesión resultantes son la intersección de las políticas basadas en identidades del rol y las políticas de la sesión. Los permisos también pueden proceder de una política en función de recursos. Una denegación explícita en cualquiera de estas políticas anulará el permiso. Para más información, consulte Políticas de sesión en la Guía del Usuario de IAM.

Varios tipos de políticas

Cuando se aplican varios tipos de políticas a una solicitud, los permisos resultantes son más complicados de entender. Para obtener información sobre cómo AWS decide si permite o no una solicitud cuando hay varios tipos de políticas implicados, consulte Lógica de evaluación de políticas en la Guía del usuario de IAM.

Recursos de AWS KMS

En AWS KMS, el recurso principal es una AWS KMS key. AWS KMS también permite usar un alias, un recurso independiente que proporciona un nombre descriptivo para una clave de KMS. Algunas operaciones de AWS KMS le permiten utilizar un alias para identificar una clave KMS.

Cada instancia de una clave KMS o alias tiene un único nombre de recurso de Amazon (ARN) con un formato estándar. En los recursos de AWS KMS, el nombre del servicio de AWS es kms.

  • AWS KMS key

    Formato de ARN:

    arn:AWS partition name:AWS service name:Región de AWS:Cuenta de AWS ID:key/key ID

    Ejemplo de ARN:

    arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

  • Alias

    Formato de ARN:

    arn:AWS partition name:AWS service name:Región de AWS:Cuenta de AWS ID:alias/alias name

    Ejemplo de ARN:

    arn:aws:kms:us-west-2:111122223333:alias/example-alias

AWS KMS proporciona un conjunto de operaciones de API para trabajar con sus recursos de AWS KMS. Para obtener más información acerca de la identificación de claves KMS en las operaciones de API de la AWS Management Console y AWS KMS, consulte Identificadores clave () KeyId. Para ver una lista de operaciones de AWS KMS, consulte la Referencia de la API de AWS Key Management Service.