Nesta página, mostramos exemplos dos registros de auditoria gerados quando você usa a federação de identidade da carga de trabalho. Com a federação de identidade de carga de trabalho, é possível permitir que uma carga de trabalho no local ou em várias nuvens acesse os recursos do Google Cloud sem usar uma chave de conta de serviço.
Para mais informações sobre como ativar e visualizar registros de auditoria, consulte Geração de registros de auditoria do IAM.
Registros para a troca de um token do IdP por um token federado
Depois de configurar pools de identidade da carga de trabalho e o provedor de identidade (IdP), crie um token para o IdP e troque-o por um token federado.
O IAM pode gerar registros de auditoria quando os principais trocam um token. Para receber registros de auditoria de todas as etapas do processo de troca de token, é preciso ativar os registros de auditoria para a atividade de acesso a dados para as seguintes APIs:
- API Identity and Access Management (IAM) (ative o tipo de registro "Admin Read")
- API Security Token Service (ative o tipo de registro "Leitura de administradores")
Depois que você ativa os registros de auditoria para a atividade de acesso a dados, o IAM gera uma entrada de registro de auditoria sempre que um principal troca um token. A entrada de registro inclui os seguintes campos:
protoPayload.authenticationInfo.principalSubject
: o assunto do token do IdP.- No Amazon Web Services (AWS), este campo contém o Amazon Resource Name (ARN) do principal que você autenticou.
- No Microsoft Azure, esse campo contém o ID de objeto da identidade gerenciada que você especificou como o assunto do token do Azure.
- Para outros IdPs OIDC, esse campo contém o valor da declaração
sub
ou assunto do token OIDC.
protoPayload.metadata.mapped_principal
: o assunto do token, usando a sintaxe do IAM para identificar o principal:principal://iam.googleapis.com/projects/project-number/locations/global/workloadIdentityPools/pool-id/subject/identifier
protoPayload.resourceName
: o provedor de pool de Identidade da carga de trabalho ao qual o token está associado.
O exemplo a seguir mostra uma entrada de registro de auditoria para uma solicitação para trocar um token. Neste exemplo, um token do Microsoft Azure foi trocado por um token federado:
{ "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access", "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "authenticationInfo": { "principalSubject": "b6112abb-5791-4507-adb5-7e8cc306eb2e" }, "metadata": { "mapped_principal": "principal://iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/azure-pool/subject/a1234bcd-5678-9012-efa3-4b5cd678ef9a" }, "methodName": "google.identity.sts.v1.SecurityTokenService.ExchangeToken", "resourceName": "projects/1234567890123/locations/global/workloadIdentityPools/azure-pool/providers/azure", "request": { "@type": "type.googleapis.com/google.identity.sts.v1.ExchangeTokenRequest", "grantType": "urn:ietf:params:oauth:grant-type:token-exchange" } }, "resource": { "type": "audited_resource" } }
Registros de declarações SAML assinadas e criptografadas
Nesta seção, descrevemos as entradas dos Registros de auditoria do Cloud que o Security Token Service cria quando tenta verificar as declarações SAML assinadas ou descriptografar declarações criptografadas enviadas do IdP.
Para a federação de identidade da carga de trabalho, a entrada de registro pertinente é semelhante a esta:
"keyInfo": [ { "use": "verify" "fingerprint": "3C:B2:47:F8:A5:9A:8A:52:BD:1C:BC:96:B5:45:C1:8D:A7:F1:73:2D" }, { "use": "decrypt" "resourceName": "//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/WORKLOAD_POOL_NAME/providers/PROVIDER_NAME/keys/KEY_NAME" } ]
Esta saída inclui os seguintes valores:
fingerprint
: a representação hexadecimal do hash SHA-256 do certificado X.509 usado para verificar a assinatura na credencial SAML. O certificado X.509 é extraído dos metadados XML SAML anexados ao provedor de pool de identidade da carga de trabalho.resourceName
: o nome do recurso da chave do provedor de pool de identidade da carga de trabalho usada para descriptografar a declaração SAML criptografada. Esse campo só estará presente se a federação de identidade da carga de trabalho receber uma resposta SAML criptografada do IdP.
Registros para criar credenciais de curta duração para uma conta de serviço
Depois de trocar o token do IdP por um token federado, use-o para criar credenciais de curta duração para uma conta de serviço. Todos os serviços do Google permitem que você faça a autenticação com essas credenciais de curta duração.
Depois que você ativa os registros de auditoria do IAM para atividade de acesso a dados, o IAM gera uma entrada de registro de auditoria sempre que um principal gera credenciais de curta duração para uma conta de serviço. A entrada de registro inclui os seguintes campos:
protoPayload.authenticationInfo.principalSubject
: o assunto do token federado.resource.labels.email_id
: a conta de serviço para a qual foram geradas credenciais de curta duração.
Veja no exemplo a seguir uma entrada de registro de auditoria de uma solicitação para gerar um
token de acesso OAuth 2.0 de curta duração para uma conta de serviço. Neste exemplo, a
solicitação foi autenticada com credenciais federadas e as credenciais de
curta duração foram criadas para a conta de serviço
my-service-account@my-project.iam.gserviceaccount.com
:
{ "logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access", "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "authenticationInfo": { "principalSubject": "principal://iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/aws-pool/subject/012345678901" }, "methodName": "GenerateAccessToken", "request": { "@type": "type.googleapis.com/google.iam.credentials.v1.GenerateAccessTokenRequest", "name": "projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com" }, "resourceName": "projects/-/serviceAccounts/123456789012345678901" }, "resource": { "labels": { "email_id": "my-service-account@my-project.iam.gserviceaccount.com", "project_id": "my-project", "unique_id": "123456789012345678901" }, "type": "service_account" } }
Registros para autenticação com credenciais da conta de serviço falsificada
Depois de criar credenciais de curta duração para uma conta de serviço, use-as para representar a conta de serviço ao chamar APIs do Google Cloud.
Alguns dos métodos chamados podem gerar registros de auditoria. Em geral, essas entradas de registro mostram as seguintes identidades:
- A conta de serviço que as credenciais de curta duração estão representando
- A identidade que criou as credenciais de curta duração
Por exemplo, suponha que o usuário jamie@example.com
crie um token federado
para o assunto
principal://iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/aws-pool/subject/jamie@example.com
e use o token federado para criar credenciais de curta duração para a conta de serviço
my-service-account@my-project.iam.gserviceaccount.com
Em seguida, esse usuário cria um novo tópico do Pub/Sub, usando as credenciais de curta duração para representar a conta de serviço. O Pub/Sub gera uma entrada de registro que identifica a conta de serviço, bem como o assunto do token do IdP:
{
"logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"principalEmail": "my-service-account@my-project.iam.gserviceaccount.com",
"serviceAccountDelegationInfo": [
{
"principalSubject": "principal://iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/aws-pool/subject/012345678901"
}
]
},
"methodName": "google.pubsub.v1.Publisher.CreateTopic",
"request": {
"@type": "type.googleapis.com/google.pubsub.v1.Topic",
"name": "projects/my-project/topics/my-topic"
},
"resourceName": "projects/my-project/topics/my-topic"
},
"resource": {
"type": "pubsub_topic"
}
}
A seguir
- Configure e visualize os registros de auditoria do IAM.
- Veja mais informações sobre registros de auditoria do Cloud.
- Configure a federação de identidades usando pools de identidades de carga de trabalho.
- Saiba mais sobre contas de serviço.