Tutorial de IAM: utilizar etiquetas de sesión SAML para ABAC
El control de acceso basado en atributos (ABAC) es una estrategia de autorización que define permisos en función de atributos. En AWS, estos atributos se denominan etiquetas. Puede asociar etiquetas a recursos de IAM, incluidas entidades de IAM (usuarios o roles) y recursos de AWS. Cuando las entidades se utilizan para realizar solicitudes de AWS, se convierten en entidades principales y esas entidades incluyen etiquetas.
También puede pasar etiquetas de sesión al asumir un rol o federar un usuario. A continuación, puede definir políticas que utilicen claves de condición de etiqueta para conceder permisos a sus entidades principales en función de sus etiquetas. Cuando utiliza etiquetas para controlar el acceso a sus recursos de AWS, permite que sus equipos y recursos crezcan con menos cambios en las políticas de AWS. Las políticas de ABAC son más flexibles que las políticas tradicionales de AWS, en las que debe enumerar cada recurso individual. Para obtener más información acerca de ABAC y su ventaja sobre las políticas tradicionales, consulte Definición de permisos en función de los atributos con la autorización de ABAC.
Si su empresa utiliza un proveedor de identidades (IdP) basado en SAML para administrar las identidades de usuarios corporativos, puede utilizar atributos SAML para un control de acceso detallado en AWS. Los atributos pueden incluir identificadores de centros de coste, direcciones de correo electrónico de usuario, clasificaciones de departamento y asignaciones de proyectos. Cuando pasa estos atributos como etiquetas de sesión, puede controlar el acceso a AWS basándose en estas etiquetas de sesión.
Para completar el tutorial de ABAC pasando atributos de SAML a su sesión principal, complete las tareas de Tutorial de IAM: definición de permisos para acceder a los recursos de AWS en función de etiquetas, con los cambios que se incluyen en este tema.
Requisitos previos
Para realizar los pasos necesarios para utilizar las etiquetas de sesión de SAML para ABAC, ya debe tener lo siguiente:
-
Acceso a un IdP basado en SAML donde puede crear usuarios de prueba con atributos específicos.
-
La posibilidad de iniciar sesión como usuario con permisos administrativos.
-
Experimente creando y editando usuarios, roles y políticas de IAM en la AWS Management Console. Sin embargo, si necesita ayuda para recordar un proceso de administración de IAM, el tutorial de ABAC proporciona enlaces en los que puede ver las instrucciones paso a paso.
-
Experimenta la configuración de un IdP basado en SAML en IAM. Para ver más detalles y vínculos a documentación detallada de IAM, consulte Traspaso de etiquetas de sesión mediante AssumeRoleWithSAML.
Paso 1: crear usuarios de prueba
Omita las instrucciones en Paso 1: crear usuarios de prueba. Dado que sus identidades están definidas en su proveedor, no es necesario que agregue usuarios de IAM para sus empleados.
Paso 2: crear la política de ABAC
Siga las instrucciones de Paso 2: crear la política de ABAC para crear la política administrada especificada en IAM.
Paso 3: crear y configurar el rol de SAML
Cuando utilice el aprendizaje de ABAC para SAML, debe realizar pasos adicionales para crear el rol, configurar el IdP de SAML y habilitar el acceso a la AWS Management Console. Para obtener más información, consulte Paso 3: crear roles.
Paso 3A: crear el rol de SAML
Cree un único rol que confíe en el proveedor de identidades de SAML y en el usuario test-session-tags
que creó en el paso 1. El tutorial de ABAC utiliza roles independientes con etiquetas de rol diferentes. Dado que está pasando etiquetas de sesión desde su IdP de SAML, solo necesita un rol. Para obtener información sobre cómo crear un rol basado en SAML, consulte Creación de un rol para una federación SAML 2.0 (consola).
Llame al rol access-session-tags
. Asocie una política de permisos access-same-project-team
al rol. Edite la política de confianza del rol para utilizar la siguiente política. Para obtener instrucciones detalladas sobre cómo editar la relación de confianza de un rol, consulte Actualizar una política de confianza de rol .
La siguiente política de confianza del rol permite que el proveedor de identidad de SAML y el usuario test-session-tags
asuman el rol. Cuando asumen el rol, deben pasar las tres etiquetas de sesión especificadas. La acción sts:TagSession
es necesaria para permitir pasar etiquetas de sesión.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSamlIdentityAssumeRole", "Effect": "Allow", "Action": [ "sts:AssumeRoleWithSAML", "sts:TagSession" ], "Principal": {"Federated":"arn:aws:iam::
123456789012
:saml-provider/ExampleCorpProvider
"}, "Condition": { "StringLike": { "aws:RequestTag/cost-center
": "*", "aws:RequestTag/access-project
": "*", "aws:RequestTag/access-team
": [ "eng
", "qas
" ] }, "StringEquals": {"SAML:aud": "https://signin.aws.amazon.com/saml"} } } ] }
La instrucción AllowSamlIdentityAssumeRole
permite a los miembros de los equipos de Ingeniería y Garantía de Calidad asumir este rol cuando se federan en AWS desde el IdP de Example Corporation. El proveedor ExampleCorpProvider
de SAML se define en IAM. El administrador ya ha configurado la aserción de SAML para pasar las tres etiquetas de sesión requeridas. La aserción puede pasar etiquetas adicionales, pero estos tres deben estar presentes. Los atributos de la identidad pueden tener cualquier valor para las etiquetas cost-center
y access-project
. Sin embargo, el valor del atributo access-team
debe coincidir con eng
o qas
para indicar que la identidad está en el equipo de ingeniería o control de calidad.
Paso 3B: configurar el IdP de SAML
Configure su IdP de SAML para que pase los atributos cost-center
, access-project
y access-team
como etiquetas de sesión. Para obtener más información, consulte Traspaso de etiquetas de sesión mediante AssumeRoleWithSAML.
Para pasar estos atributos como etiquetas de sesión, incluya los siguientes elementos en su aserción de SAML.
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:cost-center"> <AttributeValue>987654</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:access-project"> <AttributeValue>peg</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:access-team"> <AttributeValue>eng</AttributeValue> </Attribute>
Paso 3C: Habilitar el acceso a la consola
Habilite el acceso a la consola para los usuarios federados de SAML. Para obtener más información, consulte Concesión de acceso a la AWS Management Console a los usuarios federados SAML 2.0 .
Paso 4: Probar la creación de secretos
Federarse en la AWS Management Console mediante el rol access-session-tags
. Para obtener más información, consulte Concesión de acceso a la AWS Management Console a los usuarios federados SAML 2.0 . A continuación, siga las instrucciones de Paso 4: Probar la creación de secretos para crear secretos. Utilice diferentes identidades de SAML con atributos para que coincidan con las etiquetas indicadas en el tutorial de ABAC. Para obtener más información, consulte Paso 4: Probar la creación de secretos.
Paso 5: Probar la visualización de secretos
Siga las instrucciones de Paso 5: Probar la visualización de secretos para ver los secretos que creó en el paso anterior. Utilice diferentes identidades de SAML con atributos para que coincidan con las etiquetas indicadas en el tutorial de ABAC.
Paso 6: Probar la escalabilidad
Siga las instrucciones de Paso 6: Probar la escalabilidad para probar la escalabilidad. Para ello, agregue una nueva identidad en su IdP basado en SAML con los siguientes atributos:
-
cost-center = 101010
-
access-project = cen
-
access-team = eng
Paso 7: Probar la actualización y eliminación de secretos
Siga las instrucciones de Paso 7: Probar la actualización y eliminación de secretos para actualizar y eliminar secretos. Utilice diferentes identidades de SAML con atributos para que coincidan con las etiquetas indicadas en el tutorial de ABAC.
importante
Elimine todos los secretos que ha creado para evitar cargos de facturación. Para obtener más información sobre los precios de Secrets Manager, consulte Precios de AWS Secrets Manager
Resumen
Ahora ha completado correctamente todos los pasos necesarios para utilizar etiquetas de sesión y etiquetas de recursos de SAML para la administración de permisos.
nota
Ha agregado políticas que permiten acciones solo en determinadas condiciones. Si aplica una política diferente a los usuarios o roles que tiene permisos más amplios, es posible que las acciones no se limiten a requerir el etiquetado. Por ejemplo, si concede a un usuario permisos administrativos completos mediante la política administrada por AWS AdministratorAccess
, estas políticas no restringen ese acceso. Para obtener más información acerca de cómo se determinan los permisos cuando se aplican varias políticas, consulte Cómo determinar si se una solicitud se permite o se deniega dentro de una cuenta.