Administra grupos y proveedores de Workload Identity

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:

Roles obligatorios

Para obtener los permisos que necesitas a fin de administrar grupos y proveedores de Workload Identity, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:

Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

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 funciones personalizadas o con otras funciones predefinidas.

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.

Ir a Grupos de Workload Identity

gcloud

Ejecuta el comando gcloud iam workload-identity-pools create.

REST

Llama a projects.locations.workloadIdentityPools.create().

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.

Ir a Grupos de Workload Identity

gcloud

Ejecuta el comando gcloud iam workload-identity-pools list.

REST

Llama a projects.locations.workloadIdentityPools.list().

Obtener una reducción

A fin de obtener detalles sobre un grupo específico de Workload Identity, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página Grupos de Workload Identity.

    Ir a Grupos de Workload Identity

  2. 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

Llama a projects.locations.workloadIdentityPools.get().

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

  1. En la consola de Google Cloud, ve a la página Grupos de Workload Identity.

    Ir a Grupos de Workload Identity

  2. 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

Llama a projects.locations.workloadIdentityPools.patch().

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

  1. En la consola de Google Cloud, ve a la página Grupos de Workload Identity.

    Ir a Grupos de Workload Identity

  2. Busca el grupo de Workload Identity que deseas borrar y, luego, haz clic en su ícono Editar .

  3. 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

Llama a projects.locations.workloadIdentityPools.delete().

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

  1. En la consola de Google Cloud, ve a la página Grupos de Workload Identity.

    Ir a Grupos de Workload Identity

  2. Haz clic en el botón de activación Mostrar grupos y proveedores borrados.

  3. Busca el grupo de Workload Identity que deseas recuperar y, luego, haz clic en su ícono Restablecer .

  4. 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

  1. En la consola de Google Cloud, ve a la página Grupos de Workload Identity.

    Ir a Grupos de Workload Identity

  2. Busca el grupo de Workload Identity al que deseas agregar un proveedor y, luego, haz clic en el ícono Editar .

  3. Haz clic en Agregar proveedor.

  4. 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.
  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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

  1. En la consola de Google Cloud, ve a la página Grupos de Workload Identity.

    Ir a Grupos de Workload Identity

  2. 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

  1. En la consola de Google Cloud, ve a la página Grupos de Workload Identity.

    Ir a Grupos de Workload Identity

  2. 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.

  3. 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

  1. En la consola de Google Cloud, ve a la página Grupos de Workload Identity.

    Ir a Grupos de Workload Identity

  2. 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.

  3. Busca el proveedor de grupos de identidades de la carga de trabajo que deseas editar y, luego, haz clic en el ícono Editar .

  4. 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

  1. En la consola de Google Cloud, ve a la página Grupos de Workload Identity.

    Ir a Grupos de Workload Identity

  2. Busca el grupo de Workload Identity que contiene el proveedor y, luego, haz clic en su ícono Editar .

  3. En el panel Proveedores, busca el proveedor que deseas borrar y haz clic en el ícono Borrar .

  4. 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

  1. En la consola de Google Cloud, ve a la página Grupos de Workload Identity.

    Ir a Grupos de Workload Identity

  2. Haz clic en el botón de activación Mostrar grupos y proveedores borrados.

  3. 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.

  4. Busca el proveedor que quieras recuperar y, luego, haz clic en su ícono Restablecer .

  5. 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 Workload Identity

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 Workload Identity.

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:

  1. Crea un archivo YAML que contenga lo siguiente:

    constraint: constraints/iam.workloadIdentityPoolProviders
    listPolicy:
      allValues: DENY
    
  2. 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 de 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 CLI de gcloud para habilitar estas restricciones. Por ejemplo, los siguientes comandos de la CLI de gcloud 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 Workload Identity.