aws iam: mejores prácticas - 2016 aws summit buenos aires
TRANSCRIPT
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Mauricio MuñozEnterprise Solutions Architect
Abril de 2016
AWS IAM – Mejores prácticas
¿Qué veremos hoy?
• Definiciones• Mejores prácticas• Dilemas• Demostraciones
Definiciones
¿Por qué AWS Identity and Access Management (IAM)?
Para que usted pueda controlar quién puede hacer qué en su cuenta AWS.
¿Por qué AWS Identity and Access Management (IAM)?
Para que usted pueda controlar quién puede hacer qué en su cuenta AWS.
Primitivas:- Usuarios, Grupos, Recursos, Acciones- Políticas, Roles
¿Por qué AWS Identity and Access Management (IAM)?
Para que usted pueda controlar quién puede hacer qué en su cuenta AWS.
Primitivas:- Usuarios, Grupos, Recursos, Acciones- Políticas, Roles
Control:- Centralizado- Granular (APIs), Recursos, Acceso a AWS Management Console
¿Por qué AWS Identity and Access Management (IAM)?
Para que usted pueda controlar quién puede hacer qué en su cuenta AWS.
Primitivas:- Usuarios, Grupos, Recursos, Acciones- Políticas, Roles
Control:- Centralizado- Granular (APIs), Recursos, Acceso a AWS Management Console
Seguridad:- Negación por defecto- Múltiples usuarios: Credenciales y permisos individuales
Mejores Prácticas
Mejores Prácticas• Gestión de usuarios y permisos• Gestión de credenciales• Delegación
Gestión de usuarios y permisos
0. Crear usuarios individuales. Ventajas• Credenciales únicas• Fácil rotación• Permisos individuales• Visibility into your user activity by recording AWS API calls to an
Amazon S3 bucket
Gestión de usuarios y permisos
0. Crear usuarios individuales.1. Menor privilegio (LP and NtK).
Ventajas- Menor probabilidad de error
humano- Abordaje restrictivo ->
permisivo- Control más granular• Visibility into your user activity by
recording AWS calls to an Amazon
Gestión de usuarios y permisos
0. Crear usuarios individuales.1. Menor privilegio (LP and NtK).2. Usar grupos para administrar privilegios.
Ventajas- Asignar los mismos permisos
a varios usuarios- Fácil reasignación de
permisos- Centralización de cambios
para múltiples usuarios
Gestión de usuarios y permisos
0. Crear usuarios individuales.1. Menor privilegio (LP and NtK).2. Usar grupos para administrar privilegios.3. Usar ”Condiciones” para restricciones
adicionales.
Ventajas- Granularidad adicional- Disponible para cualquier
API AWS- Reduce la posibilidad de
ejecutar accidentalmente acciones privilegiadas
Gestión de usuarios y permisos
0. Crear usuarios individuales.1. Menor privilegio (LP and NtK).2. Usar grupos para administrar privilegios.3. Usar ”Condiciones” para restricciones
adicionales.4. Habilitar AWS CloudTrail.
Ventajas- Visibilidad de las actividades- Auditoria
Gestión de Credenciales
5. Definir una política fuerte de contraseñas. Ventajas- Dificulta la explotación de
cuentas
Gestión de Credenciales
5. Definir una política fuerte de contraseñas. 6. Rotar regularmente las credenciales
Ventajas- Dificulta la explotación de
cuentas- Contiene el impacto de
credenciales explotadas
Gestión de Credenciales
5. Definir una política fuerte de contraseñas. 6. Rotar regularmente las credenciales7. Configurar MFA.
Ventajas- Autenticación fuerte- Protección adicional para
acciones privilegiadas
Delegación
8. Usar roles IAM para acceso compartido.Ventajas- No compartir credenciales- No almacenar credenciales
de largo plazo- Varios casos de uso:
- Acceso cross-account- Delegación intra-account- Federación
Delegación
8. Usar roles IAM para acceso compartido.9. Usar roles IAM para instancias EC2.
Ventajas- Fácil manejo de credenciales
en instancias - Rotación automática- “Least privilege” a nivel de
aplicación- Integrado con SDKs y CLI
Delegación
8. Usar roles IAM para acceso compartido.9. Usar roles IAM para instancias EC2.10. Elimine (o reduzca) el uso de root.
Ventajas- Reduce la probabilidad de
mala utilización de la cuenta- Reduce la probabilidad de
explotación
Top 11 IAM best practices
0. Usuarios – Cree usuarios individuales.1. Permisos – “Least Privilege”.2. Grupos – Administre permisos con grupos.3. Condiciones – Restrinja acceso privilegiado con condiciones.4. Auditoria – Habilite AWS CloudTrail para registrar las llamadas. 5. Contraseñas – Configure una política fuerte. 6. Rotación – Rote regularmente las credenciales de seguridad.7. MFA – Habilite MFA para usuarios privilegiados.8. Accesso compartido– Use roles IAM para compartir accesos.9. Roles – Use roles IAM para instancias Amazon EC2.10. Root – Elimine (o reduzca) el uso de root.
Dilemas(O, ¿Cuándo debo usar <xyz>?
Usuario IAM Usuario Federado
¿ Usuario IAM ó Usuario Federado ?
¿ Usuario IAM ó Usuario Federado ?
• Depende del lugar donde está el repositorio de autenticación– On-premises → Usuarios federados (roles IAM)– Cuenta AWS → Usuarios IAM
¿ Usuario IAM ó Usuario Federado ?
• Depende del lugar donde está el repositorio de autenticación– On-premises → Usuarios federados (roles IAM)– Cuenta AWS → Usuarios IAM
• Otros casos de uso:– Delegar acceso a su cuenta → Usuarios federados (roles IAM) – Acceso de aplicación móvil → SIEMPRE usuarios federados
¿ Usuario IAM ó Usuario Federado ?
• Depende del lugar donde está el repositorio de autenticación– On-premises → Usuarios federados (roles IAM)– Cuenta AWS → Usuarios IAM
• Otros casos de uso:– Delegar acceso a su cuenta → Usuarios federados (roles IAM) – Acceso de aplicación móvil → SIEMPRE usuarios federados
IMPORTANTE: Nunca comparta credenciales.
[email protected] ID: [email protected]
Acct ID: 111111111111
¿ Cómo funciona el acceso federado ?
Usuario IAM user: mauricio
STS
[email protected] ID: 999999999999
role-ddb
[email protected] ID: 111111111111
¿ Cómo funciona el acceso federado ?
Usuario IAM user: mauricio
STS
[email protected] ID: 999999999999
role-ddb
[email protected] ID: 111111111111
{ "Statement": [ { "Effect":"Allow", "Principal":{"AWS":"111111111111"}, "Action":"sts:AssumeRole"}]}
¿ Cómo funciona el acceso federado ?role-ddb confía en los usuarios IAM de la cuenta
[email protected] (111111111111)
Usuario IAM user: mauricio
STS
[email protected] ID: 999999999999
role-ddb
{ "Statement": [ { "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem",
"dynamodb:DescribeTable", "dynamodb:ListTables" ], "Effect": "Allow", "Resource": "*“ }]}
[email protected] ID: 111111111111
{ "Statement": [ { "Effect":"Allow", "Principal":{"AWS":"111111111111"}, "Action":"sts:AssumeRole"}]}
¿ Cómo funciona el acceso federado ?role-ddb confía en los usuarios IAM de la cuenta
[email protected] (111111111111)
Usuario IAM user: mauricio
Permisos definidos para role-ddb
STS
[email protected] ID: 999999999999
role-ddb
{ "Statement": [ { "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem",
"dynamodb:DescribeTable", "dynamodb:ListTables" ], "Effect": "Allow", "Resource": "*“ }]}
[email protected] ID: 111111111111
{ "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource":
"arn:aws:iam::999999999999:role/ddb-role"}]}
{ "Statement": [ { "Effect":"Allow", "Principal":{"AWS":"111111111111"}, "Action":"sts:AssumeRole"}]}
¿ Cómo funciona el acceso federado ?role-ddb confía en los usuarios IAM de la cuenta
[email protected] (111111111111)
Permisos asignados a mauricio, permitiéndole asumir el role-ddb en la cuenta 999999999999
Usuario IAM user: mauricio
Permisos definidos para role-ddb
STS
[email protected] ID: 999999999999
role-ddb
{ "Statement": [ { "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem",
"dynamodb:DescribeTable", "dynamodb:ListTables" ], "Effect": "Allow", "Resource": "*“ }]}
[email protected] ID: 111111111111 Autentica con las
credenciales de mauricio
{ "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource":
"arn:aws:iam::999999999999:role/ddb-role"}]}
{ "Statement": [ { "Effect":"Allow", "Principal":{"AWS":"111111111111"}, "Action":"sts:AssumeRole"}]}
¿ Cómo funciona el acceso federado ?role-ddb confía en los usuarios IAM de la cuenta
[email protected] (111111111111)
Usuario IAM user: mauricio
Permisos definidos para role-ddb
STS
Permisos asignados a mauricio, permitiéndole asumir el role-ddb en la cuenta 999999999999
[email protected] ID: 999999999999
role-ddb
{ "Statement": [ { "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem",
"dynamodb:DescribeTable", "dynamodb:ListTables" ], "Effect": "Allow", "Resource": "*“ }]}
[email protected] ID: 111111111111 Autentica con las
credenciales de mauricio
Obtiene credenciales
temporales para role-ddb
{ "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource":
"arn:aws:iam::999999999999:role/ddb-role"}]}
{ "Statement": [ { "Effect":"Allow", "Principal":{"AWS":"111111111111"}, "Action":"sts:AssumeRole"}]}
¿ Cómo funciona el acceso federado ?role-ddb confía en los usuarios IAM de la cuenta
[email protected] (111111111111)
Usuario IAM user: mauricio
Permisos definidos para role-ddb
STS
Permisos asignados a mauricio, permitiéndole asumir el role-ddb en la cuenta 999999999999
[email protected] ID: 999999999999
role-ddb
{ "Statement": [ { "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem",
"dynamodb:DescribeTable", "dynamodb:ListTables" ], "Effect": "Allow", "Resource": "*“ }]}
[email protected] ID: 111111111111 Autentica con las
credenciales de mauricio
Obtiene credenciales
temporales para role-ddb
Llama la API AWS, usando las
credenciales temporales de role-
ddb
{ "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource":
"arn:aws:iam::999999999999:role/ddb-role"}]}
{ "Statement": [ { "Effect":"Allow", "Principal":{"AWS":"111111111111"}, "Action":"sts:AssumeRole"}]}
¿ Cómo funciona el acceso federado ?role-ddb confía en los usuarios IAM de la cuenta
[email protected] (111111111111)
Usuario IAM user: mauricio
Permisos definidos para role-ddb
STS
Permisos asignados a mauricio, permitiéndole asumir el role-ddb en la cuenta 999999999999
¿ Access Keys ó Contraseñas?
AWS Access Keys Contraseñas
¿ Access Keys ó Contraseñas?
• Depende de cómo los usuarios accederán a AWS– AWS Management Console → Contraseña– API, CLI, SDK → Access keys
¿ Access Keys ó Contraseñas?
• Depende de cómo los usuarios accederán a AWS– AWS Management Console → Contraseña– API, CLI, SDK → Access keys
• En cualquier caso, verifique la rotación periódica de credenciales– Use el reporte “Credential Report” para auditar la rotación.– Configure política de contraseñas.– Configure la política de usuario para permitir la rotación.
Política de ejemplo para permitir la rotación de llaves(Usuario IAM)
Política IAM{ "Version":"2012-10-17", "Statement":[
]}
Política de ejemplo para permitir la rotación de llaves(Usuario IAM)
Política IAM{ "Version":"2012-10-17", "Statement": [{ "Effect": " ", "Action": [
], "Resource":
}]}
Política de ejemplo para permitir la rotación de llaves(Usuario IAM)
Política IAM{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [
], "Resource":
}]}
Política de ejemplo para permitir la rotación de llaves(Usuario IAM)
Política IAM{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [
"iam:CreateAccessKey","iam:DeleteAccessKey","iam:ListAccessKeys","iam:UpdateAccessKey"],
"Resource":
}]}
Política de ejemplo para permitir la rotación de llaves(Usuario IAM)
Política IAM{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [
"iam:CreateAccessKey","iam:DeleteAccessKey","iam:ListAccessKeys","iam:UpdateAccessKey"],
"Resource": "arn:aws:iam::123456789012:
user/${aws:username}"}]}
Política de ejemplo para permitir la rotación de llaves(Usuario IAM)
Política IAM{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [
"iam:CreateAccessKey","iam:DeleteAccessKey","iam:ListAccessKeys","iam:UpdateAccessKey"],
"Resource": "arn:aws:iam::123456789012:
user/${aws:username}"}]}
1. Cree un segundo par de credenciales, mientras todavía el primer par está activo.
2. Actualice las aplicaciones con las nuevas credenciales.
3. Cambie el estado de las credenciales originales para Inactive.
4. Verifique que las aplicaciones están funcionando correctamente.
5. Borre las credenciales originales.
Procedimiento para la rotación
Demo
Políticas: ¿ Inline o Managed ?
Políticas Inline Managed Policies
Políticas: ¿ Inline o Managed ? Depende de qué tan “personal” quiera hacerse la política.• Use Políticas Inline cuando necesite:
• Una relación estricta uno-a-uno entre la política y el principal.• Evitar que la política sea asignada de forma errónea.• Eliminar la política cuando se borra el principal.
Políticas: ¿ Inline o Managed ? Depende de qué tan “personal” quiera hacerse la política.• Use Políticas Inline cuando necesite:
• Una relación estricta uno-a-uno entre la política y el principal• Evitar que la política sea asignada de forma errónea• Eliminar la política cuando se borra el principal
• Use Políticas Managed cuando necesite:• Reutilización.• Gestión de cambios centralizada.• Versionamiento y Rollback.• Delegación de gestión de permisos.• Actualizaciones automáticas para políticas AWS.• Tamaños mayores de políticas.
¿ Grupos o Managed Policies?
GRUPOS Managed Policies
• Ofrecen beneficios parecidos– Asignar los mismos permisos a varios usuarios.– Gerenciamiento centralizado de permisos.– Actualizaciones cubren múltiples usuarios.
¿ Grupos o Managed Policies?
• Ofrecen beneficios parecidos– Asignar los mismos permisos a varios usuarios.– Gerenciamiento centralizado de permisos.– Actualizaciones cubren múltiples usuarios.
• Use grupos cuando necesite:– Gerenciar usuarios ….
¿ Grupos o Managed Policies?
agrupados.
• Ofrecen beneficios parecidos– Asignar los mismos permisos a varios usuarios.– Gerenciamiento centralizado de permisos.– Actualizaciones cubren múltiples usuarios.
• Use grupos cuando necesite:– Gerenciar usuarios …. agrupados.
• Use Managed Policies cuando necesite:– Asignar la misma política a usuarios, grupos o roles.
¿ Grupos o Managed Policies?
Recomendación: Combine grupos Y Managed Policies
• Use grupos para organizar sus usuarios• Asigne los permisos a los grupos usando Managed Policies
Recomendación: Combine grupos Y Managed Policies
• Use grupos para organizar sus usuarios• Asigne los permisos a los grupos usando Managed Policies
• Sugerencia: Cree Managed Policies separadas, con permisos específicos para una situación, servicio o proyecto y asigne varias políticas a cada grupo.
Demo
Basado en recursos Basado en Tags
Políticas: ¿ Basadas en Recursos o en Tags?
• Use políticas basadas en recursos cuando necesite:• Controlar acceso a un recurso específico.• Controlar acceso a la mayoría de recursos AWS.
Políticas: ¿ Basadas en Recursos o en Tags?
• Use políticas basadas en recursos cuando necesite:• Controlar acceso a un recurso específico.• Controlar acceso a la mayoría de recursos AWS.
• Use políticas basadas en Tags cuando necesite:• Tratar recursos como una unidad (p.ej: un proyecto).• Aplicar permisos automáticamente al crear los recursos.
Políticas: ¿ Basadas en Recursos o en Tags?
• Use políticas basadas en recursos cuando necesite:• Controlar acceso a un recurso específico.• Controlar acceso a la mayoría de recursos AWS.
• Use políticas basadas en Tags cuando necesite:• Tratar recursos como una unidad (p.ej: un proyecto).• Aplicar permisos automáticamente al crear los recursos.Nota: Estos servicios actualmente soportan políticas de control basadas en Tags:
AWS CloudFormation, AWS Elastic Beanstalk, Amazon EC2 (Incluidos EBS), Amazon EMR, Amazon ElastiCache, Amazon Glacier, Amazon Kinesis, Amazon VPC, Amazon RDS, Amazon Redshift, Amazon Route 53 y Amazon S3http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/supported-resources.html
Políticas: ¿ Basadas en Recursos o en Tags?
¿ Cómo funciona el control de acceso basado en Tags?
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/Project" : "Real" } } } ]}
Privilegios asignados a Lionel, dándole permiso de ejecutar cualquier acción EC2 en recursos
marcados con el Tag:Proyecto=Barcelona
IAM user: Lionel
¿ Cómo funciona el control de acceso basado en Tags?
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/Project" : ”Real" } } } ]}
Privilegios asignados a Lionel, dándole permiso de ejecutar cualquier acción EC2 en recursos
marcados con el Tag:Proyecto=Barcelona
IAM user: Lionel
i-a1234r12Proyecto=Barcelona
¿ Cómo funciona el control de acceso basado en Tags?
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/Project" : ”Real" } } } ]}
Privilegios asignados a Lionel, dándole permiso de ejecutar cualquier acción EC2 en recursos
marcados con el Tag:Proyecto=Barcelona
IAM user: Lionel
i-a1234r12Proyecto=Barcelona
¿ Cómo funciona el control de acceso basado en Tags?
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/Project" : ”Real" } } } ]}
Privilegios asignados a Lionel, dándole permiso de ejecutar cualquier acción EC2 en recursos
marcados con el Tag:Proyecto=Barcelona
IAM user: Lionel
i-a1234r12
i-a4321r12
Proyecto=Barcelona
Proyecto=Barcelona
¿ Cómo funciona el control de acceso basado en Tags?
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/Project" : ”Barcelona" } } } ]}
Privilegios asignados a Lionel, dándole permiso de ejecutar cualquier acción EC2 en recursos
marcados con el Tag:Proyecto=Barcelona
IAM user: Lionel
i-a1234r12
i-a4321r12
Proyecto=Barcelona
¿ Cómo funciona el control de acceso basado en Tags?
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/Project" : ”Barcelona" } } } ]}
Privilegios asignados a Lionel, dándole permiso de ejecutar cualquier acción EC2 en recursos
marcados con el Tag:Proyecto=Barcelona
IAM user: Lionel
i-a1234r12
i-a4321r12
Proyecto=Barcelona
¿ Cómo funciona el control de acceso basado en Tags?
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/Project" : ”Barcelona" } } } ]}
Privilegios asignados a Lionel, dándole permiso de ejecutar cualquier acción EC2 en recursos
marcados con el Tag:Proyecto=Barcelona
IAM user: Lionel
i-a1234r12
i-a4321r12
Proyecto=Barcelona
i-a4321b12Proyecto=Real
¿ Cómo funciona el control de acceso basado en Tags?
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/Project" : ”Barcelona" } } } ]}
Privilegios asignados a Lionel, dándole permiso de ejecutar cualquier acción EC2 en recursos
marcados con el Tag:Proyecto=Barcelona
IAM user: Lionel
i-a1234r12
i-a4321r12
Proyecto=Barcelona
i-a4321b12Proyecto=Real
Demo
Única cuenta Varias cuentas
¿ Una única cuenta AWS o varias?
¿ Una única cuenta AWS o varias?
Use una única cuenta AWS cuando:• Quiera simplificar el control de quién hace qué en su ambiente AWS.• No haya necesidad de aislar proyectos/productos/equipos.• No tenga necesidad de separar costos.
¿ Una única cuenta AWS o varias?
Use una única cuenta AWS cuando:• Quiera simplificar el control de quién hace qué en su ambiente AWS.• No haya necesidad de aislar proyectos/productos/equipos.• No tenga necesidad de separar costos.
Use múltiples cuentas AWS cuando: • Necesite aislar completamente proyectos/equipos/ambientes.• Requiera aislar información de auditoria o de recuperación (p. ej:
enviar logs de auditoria (CloudTrail) a una cuenta diferente).• Requiera una cuenta única, pero con costos y utilización discriminada.
Acceso Cross-Account usando roles IAM
[email protected] ID: 111111111111
[email protected] ID: 333333333333
[email protected] ID: 222222222222
IAM user: Armando
Acceso Cross-Account usando roles IAM
[email protected] ID: 111111111111
[email protected] ID: 333333333333
[email protected] ID: 222222222222
IAM user: Armando
Acceso Cross-Account usando roles IAM
[email protected] ID: 111111111111
[email protected] ID: 333333333333
[email protected] ID: 222222222222
IAM user: Armando
Acceso Cross-Account usando roles IAM
[email protected] ID: 111111111111
[email protected] ID: 333333333333
[email protected] ID: 222222222222
IAM user: Armando
Acceso Cross-Account usando roles IAM
[email protected] ID: 111111111111
[email protected] ID: 333333333333
[email protected] ID: 222222222222
IAM user: Armando
Acceso Cross-Account usando roles IAM
[email protected] ID: 111111111111
[email protected] ID: 333333333333
[email protected] ID: 222222222222
IAM user: Armando
Acceso Cross-Account usando roles IAM
[email protected] ID: 111111111111
[email protected] ID: 333333333333
[email protected] ID: 222222222222
IAM user: Armando
Acceso Cross-Account usando roles IAM
External identity provider
[email protected] ID: 444444444444
[email protected] ID: 111111111111
[email protected] ID: 333333333333
[email protected] ID: 222222222222
IAM user: ArmandoIAM user: Betty
Acceso Cross-Account usando roles IAM
External identity provider
[email protected] ID: 444444444444
[email protected] ID: 111111111111
[email protected] ID: 333333333333
[email protected] ID: 222222222222
IAM user: ArmandoIAM user: Betty
Demo
¿ Qué vimos hoy?
1. Top 10 de mejores prácticas.2. Usuario IAM vs. Usuario Federado.3. Access keys vs. Contraseñas.4. Políticas Inline vs. managed policies.5. Grupos vs. managed policies.6. Políticas basadas en recursos vs. Políticas basadas en Tags.7. Una única cuenta AWS vs. varias cuentas AWS.
X11
¡Gracias!