En esta página, se explica cómo administrar tus grupos de Workload Identity existentes y sus proveedores de identidad.
Puedes administrar grupos y proveedores mediante la consola de Google Cloud, Google Cloud CLI o la API de REST.
Antes de comenzar
Crea un grupo de Workload Identity. Consulta una de las siguientes páginas para obtener más información:
- Accede a los recursos desde AWS
- Accede a los recursos desde Microsoft Azure
- Acceder a los recursos desde un proveedor de identidad de OIDC
- Accede a los recursos desde un proveedor de identidad de SAML 2.0
Roles obligatorios
Para obtener los permisos que necesitas a fin de administrar proveedores y grupos de identidades para cargas de trabajo, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
- Para ver grupos y proveedores: visualizador de grupos de identidades para cargas de trabajo de IAM (
roles/iam.workloadIdentityPoolViewer
) - Para ver, crear, actualizar y borrar grupos y proveedores: administrador de grupos de identidades para cargas de trabajo de IAM (
roles/iam.workloadIdentityPoolAdmin
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para administrar grupos y proveedores de Workload Identity. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Los siguientes permisos son necesarios para administrar grupos y proveedores de Workload Identity:
-
Para ver grupos y proveedores de Workload Identity:
-
iam.googleapis.com/workloadIdentityPoolProviders.get
-
iam.googleapis.com/workloadIdentityPoolProviders.list
-
iam.googleapis.com/workloadIdentityPools.get
-
iam.googleapis.com/workloadIdentityPools.list
-
-
-
Para crear, actualizar y borrar grupos y proveedores:
-
iam.googleapis.com/workloadIdentityPoolProviders.create
-
iam.googleapis.com/workloadIdentityPoolProviders.delete
-
iam.googleapis.com/workloadIdentityPoolProviders.undelete
-
iam.googleapis.com/workloadIdentityPoolProviders.update
-
iam.googleapis.com/workloadIdentityPools.create
-
iam.googleapis.com/workloadIdentityPools.delete
-
iam.googleapis.com/workloadIdentityPools.undelete
-
iam.googleapis.com/workloadIdentityPools.update
-
-
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Administra grupos de Workload Identity
En esta sección, se muestra cómo administrar grupos de Workload Identity.
Crea grupos
Para crear grupos de Workload Identity en un proyecto, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools create
.
REST
Enumera grupos
Para enumerar todos los grupos de Workload Identity en un proyecto, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools list
.
REST
Obtener una reducción
A fin de obtener detalles sobre un grupo específico de Workload Identity, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
Busca el grupo de Workload Identity que desees ver y, luego, haz clic en su ícono Editar
. La consola de Google Cloud muestra detalles sobre el grupo de Workload Identity.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools describe
.
REST
Actualiza un grupo
Puedes habilitar o inhabilitar un grupo de Workload Identity. También puedes cambiar su nombre visible o descripción.
Para actualizar un grupo de Workload Identity existente, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
Busca el grupo de Workload Identity que deseas editar y, luego, haz clic en el ícono Editar
.Para inhabilitar o habilitar el grupo de Workload Identity, haz clic en el botón de activación Estado y, luego, en Habilitar o Inhabilitar.
Para editar el nombre visible, haz clic en
Editar junto al nombre visible. Actualiza el nombre y, luego, haga clic en Guardar.Para editar la descripción, usa la CLI de gcloud o la API de REST.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools update
.
REST
Borra un grupo
Cuando borras un grupo de Workload Identity, también borras sus proveedores. Como resultado, las identidades del grupo pierden el acceso a los recursos de Google Cloud.
Puedes recuperar un grupo hasta 30 días después de borrarlo. Después de 30 días, la eliminación es permanente. Hasta que se borre un grupo de forma permanente, no podrás volver a usar su nombre cuando crees un grupo de Workload Identity nuevo.
Para borrar un grupo de Workload Identity y sus proveedores de identidad, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
Busca el grupo de Workload Identity que deseas borrar y, luego, haz clic en su ícono Editar
.Haz clic en
Borrar grupo y, luego, en Borrar. Se borran el grupo de Workload Identity y sus proveedores de identidad.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools delete
.
REST
Recupera un grupo
Puedes recuperar un grupo de Workload Identity borrado hasta 30 días después de la eliminación.
Para recuperar un grupo, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
Haz clic en el botón de activación Mostrar grupos y proveedores borrados.
Busca el grupo de Workload Identity que deseas recuperar y, luego, haz clic en su ícono Restablecer
.Haz clic en Restore. Se restablecen el grupo y sus proveedores.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools undelete
.
REST
Llama a projects.locations.workloadIdentityPools.undelete()
.
Administra proveedores de grupos de Workload Identity
En esta sección, se muestra cómo administrar los proveedores de grupos de Workload Identity.
Crea un proveedor
Para crear un proveedor de grupos de Workload Identity en un grupo de Workload Identity existente, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
Busca el grupo de Workload Identity al que deseas agregar un proveedor y, luego, haz clic en el ícono Editar
.Haz clic en
Agregar proveedor.Selecciona el tipo de proveedor que deseas crear:
- AWS: Es un proveedor de identidad de Amazon Web Services (AWS).
- OpenID Connect (OIDC): Un proveedor de identidad compatible con OIDC. Esto incluye Microsoft Azure.
Ingresa un nombre para el proveedor.
la consola de Google Cloud usa el nombre para crear un ID del proveedor. Para cambiar el ID del proveedor, haz clic en Editar. No puedes cambiar el ID del proveedor más adelante.
Completa los campos restantes para tu proveedor:
- AWS: Ingresa el ID de tu cuenta de AWS.
- OIDC: ingresa la URL de la entidad emisora. En Azure, la URL de la entidad emisora usa el formato
https://sts.windows.net/AZURE_TENANT_ID
. Para otros proveedores, consulta la documentación del proveedor.
Cuando finalices, haz clic en Continuar.
Para configurar la asignación de atributos, haz clic en Editar asignación. La asignación de atributos te permite usar información sobre las identidades externas para otorgar acceso a un subconjunto de esas identidades.
AWS: Este paso es opcional. Puedes usar la asignación predeterminada.
Si deseas obtener más detalles, consulta Configuración del proveedor de identidad para AWS.
OIDC: Recomendamos asignar
google.subject
aassertion.sub
. Otras asignaciones son opcionales.Si deseas obtener detalles, consulta Configuración del proveedor de identidad para Azure o Configuración del proveedor de identidad para OIDC.
Para proporcionar una condición de atributo, que especifique las identidades que se pueden autenticar, haz clic en Agregar condición y, luego, ingresa una expresión de Common Expression Language (CEL) válida (opcional). Para obtener más información, consulta Condiciones de los atributos.
Haz clic en Guardar. Se crea el proveedor del grupo de Workload Identity.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools providers create-aws
para crear un proveedor de AWS.
Ejecuta el comando gcloud iam workload-identity-pools providers create-oidc
para crear un proveedor de OIDC. Esto incluye Microsoft Azure.
REST
Llama a projects.locations.workloadIdentityPools.providers.create()
.
Enumerar proveedores
Para enumerar los proveedores de grupos de Workload Identity en un proyecto, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
Si quieres ver los proveedores de un grupo de Workload Identity, haz clic en el ícono Expandir nodo
para el grupo.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools providers list
.
REST
Llama a projects.locations.workloadIdentityPools.providers.list()
.
Obtén un proveedor
Para obtener detalles sobre un proveedor de grupos de Workload Identity específico, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
Busca el grupo de identidades de la carga de trabajo que contiene el proveedor y, luego, haz clic en el ícono
Expandir nodo para el grupo.Busca el proveedor de grupos de identidades de la carga de trabajo que deseas visualizar y, luego, haz clic en el ícono Editar
. En la consola de Google Cloud, se muestra información detallada sobre el proveedor.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools providers describe
.
REST
Llama a projects.locations.workloadIdentityPools.providers.get()
.
Actualiza un proveedor
Puedes habilitar o inhabilitar un proveedor de grupos de Workload Identity. También puedes actualizar la información de la cuenta y su asignación de atributos, además del nombre visible y la descripción.
Para actualizar un proveedor de grupos de Workload Identity existente, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
Busca el grupo de identidades de la carga de trabajo que contiene el proveedor y, luego, haz clic en el ícono
Expandir nodo para el grupo.Busca el proveedor de grupos de identidades de la carga de trabajo que deseas editar y, luego, haz clic en el ícono Editar
.Edita la información del proveedor y, luego, haz clic en Guardar.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools providers update-aws
para actualizar un proveedor de AWS.
Ejecuta el comando gcloud iam workload-identity-pools providers update-oidc
para actualizar un proveedor de OIDC. Esto incluye Microsoft Azure.
REST
Llama a projects.locations.workloadIdentityPools.providers.patch()
.
Borra un proveedor
Cuando borras un proveedor de grupo de Workload Identity, las identidades del proveedor pierden el acceso a los recursos de Google Cloud.
Puedes recuperar un proveedor hasta 30 días después de la eliminación. Después de 30 días, la eliminación es permanente. Hasta que se borre un proveedor de forma permanente, no podrás volver a usar su nombre cuando crees un proveedor nuevo.
Para borrar un proveedor de grupos de Workload Identity, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
Busca el grupo de Workload Identity que contiene el proveedor y, luego, haz clic en su ícono Editar
.En el panel Proveedores, busca el proveedor que deseas borrar y haz clic en el ícono Borrar
.Haz clic en Delete para borrar el proveedor.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools providers delete
.
REST
Llama a projects.locations.workloadIdentityPools.providers.delete()
.
Recupera un proveedor
Puedes recuperar un proveedor de grupos de Workload Identity borrado hasta 30 días después de la eliminación. Para recuperar un proveedor, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Grupos de Workload Identity.
Haz clic en el botón de activación Mostrar grupos y proveedores borrados.
Busca el grupo de identidades de la carga de trabajo que contiene el proveedor y, luego, haz clic en el ícono
Expandir nodo para el grupo.Busca el proveedor que quieras recuperar y, luego, haz clic en su ícono Restablecer
.Haz clic en Restore. Se restablecerá el proveedor.
gcloud
Ejecuta el comando gcloud iam workload-identity-pools providers undelete
.
REST
Llama a projects.locations.workloadIdentityPools.providers.undelete()
.
Administra las restricciones de la federación de identidades para cargas de trabajo
Puedes usar las restricciones de la política de la organización para restringir cómo se pueden usar los recursos en tu organización de Google Cloud.
En esta sección, se describen las restricciones que se recomiendan cuando usas la federación de identidades para cargas de trabajo.
Restringe la configuración del proveedor de identidad
Como administrador de la organización, debes decidir con qué proveedores de identidad tu organización puede federar.
Para administrar qué proveedores de identidad están permitidos, habilita la restricción de lista constraints/iam.workloadIdentityPoolProviders
en la política de la organización. Esta restricción especifica los URI de la entidad emisora de los proveedores permitidos. Puedes usar la consola de Google Cloud o la CLI de Google Cloud para habilitar esta restricción.
Para permitir solo la federación desde AWS, crea una sola restricción con el URI https://sts.amazonaws.com
. En el siguiente ejemplo, se muestra cómo crear esta restricción mediante la CLI de gcloud:
gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \ https://sts.amazonaws.com --organization=ORGANIZATION_NUMBER
También puedes especificar qué ID de cuentas de AWS tienen acceso a tus recursos de Google Cloud. Para especificar los ID de cuentas, usa la restricción de la lista constraints/iam.workloadIdentityPoolAwsAccounts
:
gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolAwsAccounts \ ACCOUNT_ID --organization=ORGANIZATION_NUMBER
Para permitir solo la federación de un proveedor de OIDC, crea una sola restricción con el issuer_uri
del proveedor permitido. Por ejemplo, lo siguiente solo permite la federación de un usuario específico de Azure:
gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \ https://sts.windows.net/AZURE_TENANT_ID --organization=ORGANIZATION_NUMBER
La federación de un proveedor de identidad SAML es un caso especial porque las claves públicas usadas para validar la aserción se proporcionan en el momento de la configuración, en lugar de recuperarse directamente del proveedor de identidad. Por lo tanto, es posible que un usuario malicioso intente subir un documento de metadatos de SAML con el ID de entidad del proveedor de identidad de la organización, pero una clave pública para la que tenga acceso a la clave privada. En esta situación, la restricción de la federación por el ID de entidad solo da como resultado una ilusión de seguridad. Por este motivo, recomendamos que solo permitas la creación de un grupo de Workload Identity que permita la federación de SAML en un proyecto de Google Cloud que tu organización administre de forma centralizada. Luego, puedes otorgar a identidades externas en ese grupo de Workload Identity acceso a los recursos de toda tu organización.
Para permitir la federación desde los proveedores de identidad SAML, crea una restricción que permita la palabra clave especial KEY_UPLOAD
.
gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \ KEY_UPLOAD --organization=ORGANIZATION_NUMBER
Puedes repetir estos comandos para permitir la federación de proveedores adicionales.
Para bloquear la federación de todos los proveedores, sigue estos pasos:
Crea un archivo YAML que contenga lo siguiente:
constraint: constraints/iam.workloadIdentityPoolProviders listPolicy: allValues: DENY
Pasa el archivo al comando
gcloud resource-manager org-policies set-policy
:gcloud resource-manager org-policies set-policy FILE_NAME.yaml \ --organization=ORGANIZATION_NUMBER
Restringe la creación de claves de cuentas de servicio
La federación de identidades para cargas de trabajo te permite acceder a los recursos de Google Cloud desde fuera de Google Cloud sin usar una clave de cuenta de servicio. Si nunca usas las claves de la cuenta de servicio para la autenticación, puedes ayudar a reducir el riesgo mediante la inhabilitación de la creación de claves.
Para inhabilitar la creación de claves de cuentas de servicio, aplica la restricción booleana iam.disableServiceAccountKeyCreation
en la política de la organización. También puedes aplicar la restricción booleana iam.disableServiceAccountKeyUpload
, que inhabilita la carga de claves públicas para las cuentas de servicio.
Puedes usar la consola de Google Cloud o la gcloud CLI para habilitar estas restricciones. Por ejemplo, los siguientes comandos de la gcloud CLI habilitan ambas restricciones:
gcloud resource-manager org-policies enable-enforce \ constraints/iam.disableServiceAccountKeyCreation \ --organization=ORGANIZATION_NUMBER gcloud resource-manager org-policies enable-enforce \ constraints/iam.disableServiceAccountKeyUpload \ --organization=ORGANIZATION_NUMBER
Supervisa la federación de identidades para cargas de trabajo
Puedes usar las métricas de Cloud Monitoring para supervisar los eventos de autenticación de tus proveedores y grupo de identidades para cargas de trabajo. Para obtener una lista de las métricas disponibles, consulta Métricas de IAM.
¿Qué sigue?
Obtén más información sobre la federación de identidades para cargas de trabajo.