Descargar la configuración de las credenciales y conceder acceso

En esta página se describe cómo configurar tus cargas de trabajo para acceder a recursos de Trusted Cloud by S3NS mediante la federación de identidades de cargas de trabajo y el acceso directo a los recursos o la suplantación de la identidad de la cuenta de servicio.

Puedes encontrar instrucciones integrales específicas para cada caso de uso en las guías de configuración de AWS y Azure, Active Directory, GitHub, GitLab y otras canalizaciones de implementación, y Kubernetes.

Permitir que tu carga de trabajo externa acceda a los recursos de Trusted Cloud

Para proporcionar a tu carga de trabajo acceso a los recursos de Trusted Cloud , te recomendamos que concedas acceso directo a los recursos a la entidad principal. En este caso, el principal es el usuario federado. Algunos Trusted Cloud productos tienen limitaciones en la API de Google Cloud. Si tu carga de trabajo llama a un endpoint de API que tiene una limitación, puedes usar la suplantación de identidad de la cuenta de servicio. En este caso, el principal es laTrusted Cloud cuenta de servicio, que actúa como identidad. Concede acceso a la cuenta de servicio en el recurso.

Acceso directo a recursos

Puedes conceder acceso a una identidad federada directamente a los recursos mediante la Trusted Cloud consola o la CLI de gcloud.

Consola

Para usar la Trusted Cloud consola y asignar roles de gestión de identidades y accesos directamente a un recurso, debes ir a la página del recurso y, a continuación, asignar el rol. En el siguiente ejemplo se muestra cómo ir a la página de Cloud Storage y asignar el rol Lector de objetos de Storage (roles/storage.objectViewer) a una identidad federada directamente en un segmento de Cloud Storage.

  1. En la Trusted Cloud consola, ve a la página Segmentos de Cloud Storage.

    Ir a Contenedores

  2. En la lista de segmentos, haga clic en el nombre del segmento al que quiera conceder el rol.

  3. Seleccione la pestaña Permisos, situada cerca de la parte superior de la página.

  4. Haz clic en el botón Conceder acceso.

    Aparecerá el cuadro de diálogo Añadir principales.

  5. En el campo Nuevos principales, introduzca una o varias identidades que necesiten acceder a su contenedor.

    Por tema

    principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
    

    Haz los cambios siguientes:

    • PROJECT_NUMBER: el número del proyecto
    • POOL_ID: el ID del grupo de cargas de trabajo
    • SUBJECT: el asunto individual asignado desde tu proveedor de identidades. Por ejemplo: administrator@example.com

    Por grupo

    principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
    

    Haz los cambios siguientes:

    • PROJECT_NUMBER: el número del proyecto
    • WORKLOAD_POOL_ID: el ID del grupo de cargas de trabajo
    • GROUP: el grupo asignado de tu proveedor de identidades. Por ejemplo: administrator-group@example.com

    Por atributo

    principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
    

    Haz los cambios siguientes:

    • PROJECT_NUMBER: el número del proyecto
    • WORKLOAD_POOL_ID: el ID del grupo de cargas de trabajo
    • ATTRIBUTE_NAME: uno de los atributos que se ha asignado desde tu proveedor de identidades
    • ATTRIBUTE_VALUE: el valor del atributo
  6. Selecciona uno o varios roles en el menú desplegable Selecciona un rol. Los roles que selecciones aparecerán en el panel con una breve descripción de los permisos que conceden.

  7. Haz clic en Guardar.

gcloud

Para usar la CLI de gcloud y asignar roles de IAM en un recurso de un proyecto, haz lo siguiente:

  1. Obtén el número del proyecto en el que se define el recurso.

    gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
    
  2. Concede acceso al recurso.

    Para usar la CLI de gcloud y asignar el rol Lector de objetos de Storage (roles/storage.objectViewer) a identidades externas que cumplan determinados criterios, ejecuta el siguiente comando.

    Por tema

    gcloud storage buckets add-iam-policy-binding BUCKET_ID \
        --role=roles/storage.objectViewer \
        --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"

    Por grupo

    gcloud storage buckets add-iam-policy-binding BUCKET_ID \
        --role=roles/storage.objectViewer \
        --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"

    Por atributo

    gcloud storage buckets add-iam-policy-binding BUCKET_ID \
        --role=roles/storage.objectViewer \
        --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"

    Haz los cambios siguientes:

    • BUCKET_ID: el contenedor al que se va a conceder acceso
    • PROJECT_NUMBER: el número de proyecto del proyecto que contiene el grupo de identidades de carga de trabajo.
    • POOL_ID: el ID del grupo de identidades de carga de trabajo
    • SUBJECT: el valor esperado del atributo que has asignado a google.subject
    • GROUP: el valor esperado del atributo que has asignado a google.groups
    • ATTRIBUTE_NAME: el nombre de un atributo personalizado en tu asignación de atributos
    • ATTRIBUTE_VALUE: el valor del atributo personalizado en tu asignación de atributos

    Puedes conceder roles en cualquier Trusted Cloud recurso que admita políticas de permiso de gestión de identidades y accesos.

Suplantación de identidad de cuentas de servicio

  1. Para crear una cuenta de servicio para la carga de trabajo externa, sigue estos pasos:

    1. Enable the IAM, Security Token Service, and Service Account Credentials APIs.

      Enable the APIs

    2. Crea una cuenta de servicio que represente la carga de trabajo. Te recomendamos que utilices una cuenta de servicio específica para cada carga de trabajo. La cuenta de servicio no tiene que estar en el mismo proyecto que el grupo de identidades de carga de trabajo, pero debes hacer referencia al proyecto que contiene la cuenta de servicio.

    3. Concede acceso a la cuenta de servicio a los recursos a los que quieras que accedan las identidades externas.

  2. Para permitir que la identidad federada suplante la cuenta de servicio, haz lo siguiente:

Consola

Para usar la Trusted Cloud consola y conceder roles de gestión de identidades y accesos a una identidad federada con una cuenta de servicio, sigue estos pasos:

Cuenta de servicio en el mismo proyecto

  1. Para conceder acceso mediante la suplantación de identidad de una cuenta de servicio en el mismo proyecto, sigue estos pasos:

    1. Ve a la página Grupos de Workload Identity.

      Ir a Grupos de Workload Identity

    2. Selecciona Conceder acceso.

    3. En el cuadro de diálogo Grant access to service account (Conceder acceso a la cuenta de servicio), selecciona Grant access using Service Account impersonation (Conceder acceso mediante la suplantación de la cuenta de servicio).

    4. En la lista Cuentas de servicio, selecciona la cuenta de servicio que las identidades externas deben suplantar y haz lo siguiente:

    5. Para elegir qué identidades del grupo pueden suplantar la identidad de la cuenta de servicio, realiza una de las siguientes acciones:

      • Para permitir que solo determinadas identidades del grupo de identidades de carga de trabajo suplanten la identidad de la cuenta de servicio, seleccione Solo las identidades que coincidan con el filtro.

      • En la lista Nombre del atributo, seleccione el atributo por el que quiera filtrar.

      • En el campo Valor del atributo, introduzca el valor esperado del atributo. Por ejemplo, si utiliza una asignación de atributos google.subject=assertion.sub, defina el nombre del atributo como subject y el valor del atributo como el valor de la reclamación sub en los tokens emitidos por su proveedor de identidades externo.

    6. Para guardar la configuración, haz clic en Guardar y, a continuación, en Cerrar.

Cuenta de servicio en otro proyecto

  1. Para conceder acceso mediante la suplantación de identidad de una cuenta de servicio en otro proyecto, sigue estos pasos:

    1. Ve a la página Cuentas de servicio.

      Ir a Cuentas de servicio

    2. Selecciona la cuenta de servicio que quieras suplantar.

    3. Haz clic en Gestionar acceso.

    4. Haz clic en Añadir principal.

    5. En el campo Nuevo principal, introduce uno de los siguientes identificadores principales de las identidades de tu grupo que suplantarán la cuenta de servicio.

      Por tema

      principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
      

      Haz los cambios siguientes:

      • PROJECT_NUMBER: el número del proyecto
      • POOL_ID: el ID del grupo de cargas de trabajo
      • SUBJECT: el asunto individual asignado desde tu proveedor de identidades. Por ejemplo: administrator@example.com

      Por grupo

      principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
      

      Haz los cambios siguientes:

      • PROJECT_NUMBER: el número del proyecto
      • WORKLOAD_POOL_ID: el ID del grupo de cargas de trabajo
      • GROUP: el grupo asignado de tu proveedor de identidades. Por ejemplo: administrator-group@example.com

      Por atributo

      principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
      

      Haz los cambios siguientes:

      • PROJECT_NUMBER: el número del proyecto
      • WORKLOAD_POOL_ID: el ID del grupo de cargas de trabajo
      • ATTRIBUTE_NAME: uno de los atributos que se ha asignado desde tu proveedor de identidades
      • ATTRIBUTE_VALUE: el valor del atributo

      Por piscina

      principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
      

      Haz los cambios siguientes:

      • PROJECT_NUMBER: el número del proyecto
      • WORKLOAD_POOL_ID: el ID del grupo de cargas de trabajo
    6. En Selecciona un rol, selecciona el rol Usuario de Workload Identity (roles/iam.workloadIdentityUser).

    7. Para guardar la configuración, haz clic en Guardar.

gcloud

Para conceder el rol de usuario de identidad de carga de trabajo (roles/iam.workloadIdentityUser) a un principal federado o a un conjunto de principales, ejecuta el siguiente comando. Para obtener más información sobre los identificadores principales de la federación de identidades de cargas de trabajo, consulta Tipos de principales.

Por tema

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"

Por grupo

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"

Por atributo

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"

Haz los cambios siguientes:

  • SERVICE_ACCOUNT_EMAIL: la dirección de correo de la cuenta de servicio
  • PROJECT_NUMBER: el número de proyecto del proyecto que contiene el grupo de identidades de carga de trabajo.
  • POOL_ID: el ID del grupo de identidades de carga de trabajo
  • SUBJECT: el valor esperado del atributo que has asignado a google.subject
  • GROUP: el valor esperado del atributo que has asignado a google.groups
  • ATTRIBUTE_NAME: el nombre de un atributo personalizado en tu asignación de atributos
  • ATTRIBUTE_VALUE: el valor del atributo personalizado en tu asignación de atributos

Descarga la configuración

Para que tu carga de trabajo pueda acceder a las bibliotecas de cliente, primero debes descargar y configurar las credenciales predeterminadas de la aplicación (ADC). Para ello, sigue estos pasos:

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

    Ir a Grupos de Workload Identity
  2. En la tabla, selecciona tu grupo para ir a la página de detalles del grupo.

  3. Haz clic en Conceder acceso.

  4. Selecciona Conceder acceso mediante identidades federadas (recomendado).

  5. Para descargar la credencial predeterminada de la aplicación (ADC) de forma que tu carga de trabajo pueda acceder a las bibliotecas de cliente, haz lo siguiente:

    1. Haz clic en Descargar configuración.

    2. En el cuadro de diálogo Configura tu aplicación, haz lo siguiente:

      1. En la lista desplegable Proveedor, selecciona tu proveedor.

      2. En Ruta del token de OIDC o Ruta de la aserción de SAML, introduce la ruta donde se encuentra el token o la aserción.

      3. En la lista desplegable Tipo de formato, selecciona el formato.

    3. Haz clic en Descargar configuración y anota la ruta donde has guardado el archivo.