Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
Configuración de los permisos de ACK
ACK necesita permisos de IAM para crear y administrar recursos de AWS en su nombre. En este tema, se explica cómo funciona IAM con ACK y se proporciona orientación sobre la configuración de los permisos para distintos casos de uso.
Cómo funciona IAM con ACK
ACK usa roles de IAM para autenticarse con AWS y llevar a cabo acciones en los recursos. Hay dos formas de proporcionar permisos a ACK:
Rol de capacidad: el rol de IAM que proporciona al crear la capacidad de ACK. Este rol se utiliza de forma predeterminada para todas las operaciones de ACK.
Selectores de roles de IAM: roles de IAM adicionales que se pueden asignar a espacios de nombres o recursos específicos. Estos roles anulan el rol de capacidad para los recursos de su ámbito.
Cuando ACK necesita crear o administrar un recurso, determina qué rol de IAM se utiliza:
-
Compruebe si un IAMRoleSelector coincide con el espacio de nombres del recurso.
-
Si hay una coincidencia, asuma el rol de IAM.
-
De lo contrario, use el rol de capacidad.
Este enfoque permite una administración flexible de los permisos, desde configuraciones simples de un solo rol hasta configuraciones complejas de varias cuentas y varios equipos.
Introducción: configuración sencilla de permisos
Para el desarrollo, las pruebas o los casos de uso sencillos, puede agregar todos los permisos del servicio necesarios directamente al rol de capacidad.
Este enfoque funciona bien cuando:
-
Comienza a usar ACK.
-
Todos los recursos están en la misma cuenta de AWS.
-
Un solo equipo administra todos los recursos de ACK.
-
Confía en que todos los usuarios de ACK tengan los mismos permisos.
Práctica recomendada de producción: selectores de roles de IAM
Para los entornos de producción, utilice los selectores de roles de IAM para implementar el acceso con privilegio mínimo y el aislamiento de espacios de nombres.
Cuando se utilizan los selectores de roles de IAM, el rol de capacidad solo necesita el permiso sts:AssumeRole para asumir los roles específicos del servicio. No es necesario agregar ningún permiso de servicio de AWS (como S3 o RDS) al propio rol de capacidad, ya que esos permisos se conceden a los roles de IAM individuales que asume el rol de capacidad.
Cómo elegir entre los modelos de permisos:
Utilice los permisos directos (adición de permisos de servicio al rol de capacidad) cuando:
-
Esté comenzando y desee la configuración más sencilla.
-
Todos los recursos estén en la misma cuenta que el clúster.
-
Tenga requisitos de permisos administrativos para todo el clúster.
-
Todos los equipos puedan compartir los mismos permisos.
Utilice los selectores de roles de IAM cuando:
-
Administre recursos en varias cuentas de AWS.
-
Los diferentes equipos o espacios de nombres necesiten permisos diferentes.
-
Necesite un control de acceso detallado por espacio de nombres.
-
Desee seguir las prácticas de seguridad de privilegio mínimo.
Puede comenzar con permisos directos y migrar a los selectores de roles de IAM más adelante, a medida que aumenten sus necesidades.
Por qué debería utilizar los selectores de roles de IAM en producción:
-
Privilegio mínimo: cada espacio de nombres obtiene solo los permisos que necesita.
-
Aislamiento del equipo: el equipo A no puede usar los permisos del equipo B accidentalmente.
-
Auditoría más sencilla: se asigna claramente el espacio de nombres que utiliza cada rol.
-
Compatibilidad entre cuentas: es necesario para administrar los recursos en varias cuentas.
-
Separación de preocupaciones: los diferentes servicios o entornos utilizan roles diferentes.
Configuración básica del selector de roles de IAM
Paso 1: creación de un rol de IAM específico del servicio
Cree un rol de IAM con permisos para servicios de AWS específicos:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": "*" } ] }
Configure la política de confianza para permitir que el rol de capacidad la asuma:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole" }, "Action": "sts:AssumeRole" } ] }
Paso 2: concesión del permiso AssumeRole al rol de capacidad
Agregue el permiso al rol de capacidad para asumir el rol específico del servicio:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/ACK-S3-Role" } ] }
Paso 3: creación de IAMRoleSelector
Asigne el rol de IAM a un espacio de nombres:
apiVersion: services.k8s.aws/v1alpha1 kind: IAMRoleSelector metadata: name: s3-namespace-config spec: arn: arn:aws:iam::111122223333:role/ACK-S3-Role namespaceSelector: names: - s3-resources
Paso 4: creación de recursos en el espacio de nombres asignado
Los recursos del espacio de nombres s3-resources utilizan automáticamente el rol especificado:
apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-bucket namespace: s3-resources spec: name: my-production-bucket
Administración multicuenta
Utilice los selectores de roles de IAM para administrar los recursos de varias cuentas de AWS.
Paso 1: creación de un rol de IAM entre cuentas
En la cuenta de destino (444455556666), cree un rol que confíe en el rol de capacidad de la cuenta de origen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole" }, "Action": "sts:AssumeRole" } ] }
Adjunte permisos específicos del servicio a este rol.
Paso 2: concesión del permiso AssumeRole
En la cuenta de origen (111122223333), permita que el rol de capacidad asuma el rol de cuenta de destino:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::444455556666:role/ACKTargetAccountRole" } ] }
Paso 3: creación de IAMRoleSelector
Asigne el rol de acceso entre cuentas a un espacio de nombres:
apiVersion: services.k8s.aws/v1alpha1 kind: IAMRoleSelector metadata: name: production-account-config spec: arn: arn:aws:iam::444455556666:role/ACKTargetAccountRole namespaceSelector: names: - production
Paso 4: creación de recursos
Los recursos del espacio de nombres production se crean en la cuenta de destino:
apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-bucket namespace: production spec: name: my-cross-account-bucket
Patrones avanzados del selector de roles de IAM
Para obtener la configuración avanzada, que incluye selectores de roles, asignación de roles específica del recurso y ejemplos adicionales, consulte la documentación sobre IRSA de ACK
Siguientes pasos
-
Conceptos de ACK: descripción de los conceptos de ACK y el ciclo de vida de los recursos
-
Conceptos de ACK: información sobre las políticas de adopción y eliminación de recursos
-
Consideraciones sobre la seguridad para las capacidades de EKS: descripción de las prácticas recomendadas de seguridad para capacidades