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 da carga de trabalho, é possível permitir que uma carga de trabalho no local ou multicloud acesse 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 receber uma resposta SAML criptografada do IdP.
Registros para a federação X.509
Nesta seção, descrevemos as entradas de registro dos registros de auditoria do Cloud que o Security Token Service cria quando tenta verificar o certificado do cliente mTLS com um repositório de confiança pré-configurado.
Para a federação de identidade da carga de trabalho, a entrada de registro pertinente é semelhante a esta:
"keyInfo": [ { "certificateType": "trust_anchor" "timeUntilExpiration": 3333405600s "fingerprintSha256": "e33f612a0e426692f29db2c7b17b9e3810ce13f09ad117c67e7227a84fd25ea5" "use": "verify" }
Esta saída inclui os seguintes valores:
certificateType
: o tipo de certificado envolvido na verificação do certificado do cliente, que pode sertrust_anchor
ouintermediate_ca
.timeUntilExpiration
: o tempo restante em segundos até a expiração do certificado quando ele é usado na verificação da cadeia de certificadosfingerprintSha256
: a representação hexadecimal do hash SHA-256 do certificado X.509
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.