La función de identidad para cargas de trabajo administrada forma parte de la API de Identity and Access Management. La identidad de carga de trabajo administrada simplifica la mTLS aprovisionando y administrando automáticamente los certificados X.509 del servicio de la entidad certificadora.
La identidad para cargas de trabajo administrada se basa en el estándar del Secure Production Identity Framework For Everyone (SPIFFE), que proporciona un framework para identificar, autenticar y proteger las comunicaciones entre cargas de trabajo con un ID de SPIFFE único.
En esta página, se analiza la identidad de carga de trabajo administrada en el contexto de la asignación de una identidad administrada a un balanceador de cargas para la autenticación con mTLS. Para obtener más información sobre la identidad de cargas de trabajo administradas para otras cargas de trabajo, consulta Descripción general de las identidades de cargas de trabajo administradas.
ID de SPIFFE
Una identidad administrada se representa con un ID de SPIFFE. El ID de SPIFFE es un URI que identifica de forma única una carga de trabajo. En el caso de mTLS de backend, la carga de trabajo es el servicio de backend de un balanceador de cargas. Su formato es el siguiente:
spiffe://TRUST_DOMAIN_NAME/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID
Un TRUST_DOMAIN_NAME se expande aún más de la siguiente manera:
WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog
Para unir todo, las cargas de trabajo de Compute Engine, como el recurso de servicio de backend de un balanceador de cargas, pueden tener una identidad administrada de la siguiente manera:
spiffe://WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID
En la siguiente sección, se describen los diferentes recursos de identidad para cargas de trabajo administradas.
Jerarquía de recursos de identidad de carga de trabajo administrada
Para configurar una identidad de carga de trabajo administrada para un balanceador de cargas, debes crear los siguientes recursos. Estos recursos se describen en las siguientes secciones de este documento.
- Grupo de identidades para cargas de trabajo
- Espacio de nombres
- Workload Identity administrada
- Política de certificación
Grupo de identidades para cargas de trabajo
Las identidades para cargas de trabajo administradas se definen dentro de un grupo de identidades para cargas de trabajo, que actúa como un dominio de confianza.
El dominio de confianza representa un límite de seguridad lógico dentro del cual las cargas de trabajo pueden autenticarse y autorizarse entre sí con sus IDs de SPIFFE. Todas las cargas de trabajo dentro del mismo dominio de confianza comparten una raíz de confianza común, lo que permite que las cargas de trabajo verifiquen las identidades de las demás.
Para usar identidades administradas, debes configurar el grupo de identidades para cargas de trabajo en modo TRUST_DOMAIN. Todas las identidades dentro de un grupo constan de un solo espacio de nombres y un identificador de carga de trabajo individual.
En el siguiente diagrama, el balanceador de cargas y el backend forman parte del mismo dominio de confianza y comparten el mismo certificado raíz. El certificado raíz se usa para compilar una cadena de confianza y verificar la identidad de las cargas de trabajo dentro del dominio de confianza.
De forma predeterminada, tus cargas de trabajo dentro del mismo dominio de confianza pueden autenticarse mutuamente con identidades para cargas de trabajo administradas. Si deseas que las cargas de trabajo que se encuentran en diferentes dominios de confianza se autentiquen mutuamente, debes declarar explícitamente la relación de confianza en el grupo de identidades para cargas de trabajo. Para ello, crea una configuración de confianza intercalada que reconozca y acepte certificados de otros dominios de confianza.
Espacio de nombres
Dentro de un grupo de identidades para cargas de trabajo, las identidades para cargas de trabajo administradas se organizan en límites administrativos llamados espacios de nombres. Los espacios de nombres te ayudan a organizar y otorgar acceso a las identidades para cargas de trabajo relacionadas.
Workload Identity administrada
Una identidad para cargas de trabajo administrada o una identidad administrada es un identificador de carga de trabajo que se configura en un grupo de identidades para cargas de trabajo. Está adjunto a un recurso Google Cloud. Cada identidad administrada se identifica de forma única con un espacio de nombres y un identificador de carga de trabajo individual.
En el contexto de lograr la mTLS de backend, la identidad administrada se adjunta al recurso de servicio de backend del balanceador de cargas.
El valor de una identidad administrada es un ID de SPIFFE completamente especificado que debe cumplir con el siguiente formato:
spiffe://WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID
Política de certificación
La identidad de cargas de trabajo administrada para los recursos de Compute Engine requiere que configures políticas de certificación.
Las políticas de certificación de cargas de trabajo contienen reglas que especifican a qué cargas de trabajo se les puede emitir un certificado X.509 para una identidad de carga de trabajo administrada. Las políticas de certificación usan atributos verificables de la carga de trabajo, como el ID del proyecto o el nombre del recurso, para garantizar que solo las cargas de trabajo de confianza puedan usar una identidad administrada en particular.