Visão geral das identidades de cargas de trabalho gerenciadas

O recurso de identidade gerenciada da carga de trabalho faz parte da API Identity and Access Management. A identidade gerenciada da carga de trabalho simplifica o mTLS ao provisionar e gerenciar automaticamente certificados X.509 do Certificate Authority Service.

A identidade gerenciada da carga de trabalho é baseada no padrão Secure Production Identity Framework For Everyone (SPIFFE), que fornece um framework para identificar, autenticar e proteger as comunicações entre cargas de trabalho usando um ID SPIFFE exclusivo.

Nesta página, discutimos a identidade gerenciada da carga de trabalho no contexto da atribuição de uma identidade gerenciada a um balanceador de carga para autenticação mTLS. Para saber mais sobre a Identidade da carga de trabalho gerenciada para outras cargas de trabalho, consulte Visão geral das identidades de cargas de trabalho gerenciadas.

ID do SPIFFE

Uma identidade gerenciada é representada por um ID do SPIFFE. O ID do SPIFFE é um URI que identifica exclusivamente uma carga de trabalho. No caso do mTLS de back-end, a carga de trabalho é o serviço de back-end de um balanceador de carga. Ele é formatado como mostrado a seguir:

spiffe://TRUST_DOMAIN_NAME/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

Um TRUST_DOMAIN_NAME é expandido da seguinte maneira:

WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog

Para juntar tudo, as cargas de trabalho do Compute Engine, como o recurso de serviço de back-end de um balanceador de carga, podem ter uma identidade gerenciada da seguinte maneira:

spiffe://WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

A seção a seguir descreve os diferentes recursos gerenciados de identidade da carga de trabalho.

Hierarquia de recursos de identidade da carga de trabalho gerenciada

Para configurar uma identidade de carga de trabalho gerenciada para um balanceador de carga, é necessário criar os seguintes recursos. Esses recursos são descritos nas seções a seguir deste documento.

  • Pool de identidade da carga de trabalho
  • Namespace
  • Identidade da carga de trabalho gerenciada
  • Política de atestado

Pool de identidade da carga de trabalho

As identidades de carga de trabalho gerenciadas são definidas em um pool de identidades de carga de trabalho, que serve como um domínio de confiança.

O domínio de confiança representa um limite de segurança lógico em que as cargas de trabalho podem se autenticar e se autorizar usando os IDs do SPIFFE. Todas as cargas de trabalho no mesmo domínio de confiança compartilham uma raiz de confiança comum, o que permite que elas verifiquem as identidades umas das outras.

Para usar identidades gerenciadas, configure o pool de identidades de carga de trabalho no modo TRUST_DOMAIN. Todas as identidades em um pool consistem em um namespace único e um identificador de carga de trabalho individual.

No diagrama a seguir, o balanceador de carga e o back-end fazem parte do mesmo domínio de confiança, compartilhando o mesmo certificado raiz. O certificado raiz é usado para criar uma cadeia de confiança e verificar a identidade das cargas de trabalho no domínio de confiança.

Por padrão, as cargas de trabalho no mesmo domínio de confiança podem se autenticar mutuamente usando identidades gerenciadas de carga de trabalho. Se você quiser que cargas de trabalho em domínios de confiança diferentes se autentiquem mutuamente, declare explicitamente a relação de confiança no pool de identidades de carga de trabalho. Para fazer isso, crie uma configuração de confiança inline que reconheça e aceite certificados de outros domínios de confiança.

Hierarquia de recursos de identidade da carga de trabalho gerenciada.
Hierarquia de recursos de identidade gerenciada da carga de trabalho (clique para ampliar).

Namespace

Em um pool de identidades de cargas de trabalho, as identidades de cargas de trabalho gerenciadas são organizadas em limites administrativos chamados namespaces. Eles ajudam a organizar e conceder acesso às identidades de carga de trabalho relacionadas.

Identidade da carga de trabalho gerenciada

A identidade da carga de trabalho gerenciada ou identidade gerenciada é um identificador de carga de trabalho configurado em um pool de identidades de carga de trabalho. Ele está anexado a um recurso Google Cloud. Cada identidade gerenciada é identificada de maneira exclusiva por um namespace e um identificador de carga de trabalho individual.

No contexto da conquista do mTLS de back-end, a identidade gerenciada é anexada ao recurso de serviço de back-end do balanceador de carga.

O valor de uma identidade gerenciada é um ID SPIFFE totalmente especificado que precisa seguir este formato:

spiffe://WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

Política de atestado

A identidade gerenciada da carga de trabalho para recursos do Compute Engine exige que você configure políticas de atestado.

As políticas de atestado de carga de trabalho contêm regras que especificam quais cargas de trabalho podem receber um certificado X.509 para uma identidade de carga de trabalho gerenciada. As políticas de atestado usam atributos verificáveis da carga de trabalho, como ID do projeto ou nome do recurso, para garantir que apenas cargas de trabalho confiáveis possam usar uma determinada identidade gerenciada.

A seguir