Control de acceso con la gestión de identidades y accesos
En este tema se describe cómo usar Gestión de Identidades y Accesos para controlar cómo puede crear y gestionar recursos Config Connector. Google Cloud
Para instalar Config Connector, debes autenticarte creando una cuenta de servicio de IAM y, a continuación, usar la federación de Workload Identity para GKE para vincular las cuentas de servicio de IAM con las cuentas de servicio de Kubernetes. Gestión de Identidades y Accesos permite que Config Connector realice acciones en recursos específicos. Si limitas los permisos asignados a tus cuentas de servicio, tendrás más control sobre los tipos de recursos que puede crear Config Connector.
Puedes gestionar los recursos con una sola cuenta de servicio o con varias.
Una sola cuenta de servicio
Cuando instales Config Connector con el complemento de GKE o mediante la instalación manual, puedes definir el modo de clúster en tu ConfigConnector
CustomResource.
Con el modo de clúster, puedes usar una sola cuenta de servicio de IAM para crear y gestionar recursos, aunque uses Config Connector para gestionar varios proyectos.
En el siguiente diagrama se muestra cómo funciona este modo, en el que la misma cuenta de servicio gestiona dos proyectos:
Varias cuentas de servicio
Puedes usar varias cuentas de servicio configurando el modo de espacio de nombres en tu ConfigConnector
CustomResource.
El modo de espacio de nombres te permite dividir los permisos en función de los intereses de las diferentes cuentas de servicio de gestión de identidades y accesos, así como aislar los permisos entre los diferentes espacios de nombres de Kubernetes, ya que puedes asociar una cuenta de servicio diferente a cada espacio de nombres.
Elige el modo con espacio de nombres si:
- Quiero aislar los permisos de gestión de identidades y accesos a nivel de espacio de nombres de Kubernetes.
- Gestionarás un gran número de Google Cloud recursos de varios Google Cloud proyectos en un solo clúster.
Por ejemplo, puedes crear una cuenta de servicio de gestión de identidades y accesos para cada proyecto, organizar los recursos de cada proyecto en el mismo espacio de nombres de Kubernetes y, a continuación, vincular la cuenta de servicio de gestión de identidades y accesos correspondiente al espacio de nombres de Kubernetes. Esto te permite separar los permisos de gestión de identidades y accesos de cada proyecto para que cada uno tenga un conjunto de permisos distinto e independiente.
En el siguiente diagrama se muestra un resumen de cómo funciona el modo con espacio de nombres, en el que cada proyecto se gestiona con una cuenta de servicio diferente:
En el modo de espacio de nombres, cada cuenta de servicio de IAM está vinculada a un espacio de nombres de forma predeterminada. Cuando creas recursos en ese espacio de nombres, Config Connector usa esta cuenta de servicio para crear recursos. Google CloudHay un pod de Config Connector cnrm-controller-manager
específico para cada espacio de nombres que suplanta la cuenta de servicio de IAM asociada al espacio de nombres.
Para saber cómo configurar el modo de espacio de nombres, consulta Instalar Config Connector con el modo de espacio de nombres.
Ajustar los permisos después de la instalación
Durante la instalación de Config Connector, es posible que hayas seleccionado un rol básico temporal y se lo hayas asignado a la cuenta de servicio para la que configuraste Config Connector. Si has configurado Config Connector en modo con espacio de nombres, es posible que tengas más de una cuenta de servicio de gestión de identidades y accesos.
Una vez completada la instalación, es posible que tengas que quitar o actualizar los permisos generales para que se ajusten a las consideraciones de seguridad y a las prácticas recomendadas.
Una de las principales ventajas de Config Connector es que ofrece herramientas unificadas. Esto significa que puedes usar Config Connector para ajustar los roles y permisos de gestión de identidades y accesos. Puedes usar los recursos IAMPolicyMember o IAMPartialPolicy de Config Connector para configurar permisos de gestión de identidades y accesos. Para ello, se necesita una cuenta de servicio de gestión de identidades y accesos con permisos de administrador en tus proyectos, carpetas u organización. Esta cuenta de servicio debe configurarse para enlazarse con la instalación de Config Connector mediante el modo de clúster o el modo de espacio de nombres.
En las siguientes secciones se muestran diferentes ejemplos de políticas que usan Config Connector para gestionar los permisos de gestión de identidades y accesos.
Permiso de propietario de la organización
Para ampliar los permisos de Config Connector de forma que pueda gestionar todos los proyectos y carpetas de una organización determinada, sigue estos pasos:
Crea el siguiente archivo de manifiesto YAML:
apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: iampolicymember-orglevel-permission namespace: NAMESPACE spec: member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com role: roles/owner resourceRef: kind: Organization external: ORGANIZATION_ID
Haz los cambios siguientes:
NAMESPACE
con el nombre de tu espacio de nombresSERVICE_ACCOUNT_NAME
con el nombre de tu cuenta de servicioHOST_PROJECT_ID
con el ID del proyecto host de tu cuenta de servicioroles/owner
con el rol adecuadoORGANIZATION_ID
con el ID de tu organización
Aplica el manifiesto YAML a tu clúster mediante
kubectl
o cualquier herramienta de gestión de configuración que elijas.
Permiso de propietario de la carpeta
Para ampliar los permisos de Config Connector de forma que pueda gestionar todos los proyectos y las carpetas de una carpeta determinada, sigue estos pasos:
Crea el siguiente archivo de manifiesto YAML:
apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: iampolicymember-orglevel-permission namespace: NAMESPACE spec: member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com role: roles/owner resourceRef: kind: Folder external: folders/FOLDER_ID
Haz los cambios siguientes:
NAMESPACE
con el nombre de tu espacio de nombresSERVICE_ACCOUNT_NAME
con el nombre de tu cuenta de servicioHOST_PROJECT_ID
con el ID del proyecto host de tu cuenta de servicioroles/owner
con el rol adecuadoFOLDER_ID
con el ID de tu carpeta
Aplica el manifiesto YAML a tu clúster mediante
kubectl
o cualquier herramienta de gestión de configuración que elijas.
Permisos de propietario del proyecto
Para permitir que Config Connector gestione los recursos de un proyecto específico, sigue estos pasos:
Crea el siguiente archivo de manifiesto YAML:
apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: iampolicymember-orglevel-permission namespace: NAMESPACE spec: member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com role: roles/owner resourceRef: kind: Project external: projects/PROJECT_ID
Haz los cambios siguientes:
NAMESPACE
con el nombre de tu espacio de nombresSERVICE_ACCOUNT_NAME
con el nombre de tu cuenta de servicioHOST_PROJECT_ID
con el ID del proyecto host de tu cuenta de servicioroles/owner
con el rol adecuadoPROJECT_ID
con el ID del proyecto de destino
Aplica el manifiesto YAML a tu clúster mediante
kubectl
o cualquier herramienta de gestión de configuración que elijas.
Funciones predefinidas
Si prefieres conceder permisos más limitados a Config Connector, puedes asignar uno o varios roles de gestión de identidades y accesos a tu instalación de Config Connector creando algunos recursos IAMPolicyMember o un recurso IAMPartialPolicy combinado. Los siguientes roles se suelen asignar a la cuenta de servicio de Config Connector:
Editor: al conceder el rol editor, se permite el uso de la mayoría de las funciones de Config Connector, excepto las configuraciones de todo el proyecto o la organización, como las modificaciones de gestión de identidades y accesos.
Rol Administrador de cuentas de servicio de gestión de identidades y accesos: al conceder los permisos de
roles/iam.serviceAccountAdmin
, Config Connector puede configurar cuentas de servicio de gestión de identidades y accesos.Resource Manager: si asignas un rol de Resource Manager, como
roles/resourcemanager.folderCreator
, Config Connector podrá gestionar carpetas y organizaciones.
Roles personalizados
Si los roles predefinidos no se ajustan a tus necesidades, puedes crear roles personalizados con los permisos que definas.
Para saber cómo crear y asignar roles personalizados, consulta el artículo Crear y gestionar roles personalizados.
Siguientes pasos
- Consulta cómo organizar tus recursos por carpeta, proyecto u organización.