Questa pagina mostra esempi dei log di controllo generati quando utilizzi la federazione delle identità dei carichi di lavoro. Con la federazione delle identità per i workload, puoi consentire a un workload on-premise o multi-cloud di accedere alle risorse Google Cloud senza utilizzare una chiave dell'account di servizio.
Per saperne di più sull'attivazione e la visualizzazione dei log di controllo, consulta Audit logging IAM.
Log per lo scambio di un token IdP con un token federato
Dopo aver configurato i pool di identità del workload e il provider di identità (IdP), puoi creare un token per l'IdP e scambiarlo con un token federato.
IAM può generare audit log quando le entità scambiano un token. Per ricevere i log di controllo per tutti i passaggi della procedura di scambio di token, devi attivare i log di controllo per l'attività di accesso ai dati per le seguenti API:
- API Identity and Access Management (IAM) (attiva il tipo di log "Admin Read")
- API Security Token Service (attiva il tipo di log "Admin Read")
Dopo aver attivato i log di controllo per l'attività di accesso ai dati, IAM genera una voce di log di controllo ogni volta che un'entità scambia un token. La voce di log include i seguenti campi:
protoPayload.authenticationInfo.principalSubject
: L'oggetto del token IdP.- Su Amazon Web Services (AWS), questo campo contiene l'Amazon Resource Name (ARN) dell'entità autenticata.
- Su Microsoft Azure, questo campo contiene l'ID oggetto dell'identità gestita che hai specificato come soggetto del token Azure.
- Per altri IdP OIDC, questo campo contiene il valore del
sub
o della rivendicazione del soggetto dal token OIDC.
protoPayload.metadata.mapped_principal
: il soggetto del token, utilizzando la sintassi IAM per identificare l'entità:principal://iam.googleapis.com/projects/project-number/locations/global/workloadIdentityPools/pool-id/subject/identifier
protoPayload.resourceName
: il provider del pool di identità del workload a cui è associato il token.
L'esempio seguente mostra una voce di log di controllo per una richiesta di scambio di un token. In questo esempio, un token Microsoft Azure è stato scambiato con un token federato:
{ "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" } }
Log per le asserzioni SAML firmate e criptate
Questa sezione descrive le voci di log di Cloud Audit Logs che Security Token Service crea quando tenta di verificare le asserzioni SAML firmate o di decriptare le asserzioni criptate inviate dal tuo IdP.
Per la federazione delle identità per i workload, la voce di log pertinente è simile alla seguente:
"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" } ]
Questo output include i seguenti valori:
fingerprint
: la rappresentazione esadecimale dell'hash SHA-256 del certificato X.509 utilizzato per verificare la firma sulla credenziale SAML. Il certificato X.509 viene estratto dai metadati XML SAML allegati al provider del pool di identità del workload.resourceName
: il nome della risorsa della chiave del provider del pool di identità del workload utilizzata per decriptare l'asserzione SAML criptata. Questo campo è presente solo se la federazione di identità riceve una risposta SAML criptata dal tuo IdP.
Log per la federazione X.509
Questa sezione descrive le voci di log di Cloud Audit Logs che Security Token Service crea quando tenta di verificare il certificato client mTLS con un truststore preconfigurato.
Per la federazione delle identità per i workload, la voce di log pertinente è simile alla seguente:
"keyInfo": [ { "certificateType": "trust_anchor" "timeUntilExpiration": 3333405600s "fingerprintSha256": "e33f612a0e426692f29db2c7b17b9e3810ce13f09ad117c67e7227a84fd25ea5" "use": "verify" }
Questo output include i seguenti valori:
certificateType
: il tipo di certificato coinvolto nella verifica del certificato client, che può esseretrust_anchor
ointermediate_ca
timeUntilExpiration
: il tempo rimanente in secondi fino alla scadenza del certificato quando viene utilizzato nella verifica della catena di certificatifingerprintSha256
: la rappresentazione esadecimale dell'hash SHA-256 del certificato X.509
Log per la creazione di credenziali di breve durata per un account di servizio
Dopo aver scambiato il token IdP con un token federato, puoi utilizzare il token federato per creare credenziali di breve durata per unaccount di serviziot. Tutti i servizi Google ti consentono di autenticarti con queste credenziali temporanee.
Dopo aver attivato i log di controllo IAM per l'attività di accesso ai dati, IAM genera una voce di log di controllo ogni volta che un'entità genera credenziali di breve durata per un account di servizio. La voce di log include i seguenti campi:
protoPayload.authenticationInfo.principalSubject
: L'oggetto del token federato.resource.labels.email_id
: il account di servizio per cui sono state generate credenziali di breve durata.
Il seguente esempio mostra una voce di log di controllo per una richiesta di generazione di un token di accesso OAuth 2.0 di breve durata per un account di servizio. In questo esempio, la
richiesta è stata autenticata con credenziali federate e le credenziali
di breve durata sono state create per il account di servizio
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" } }
Log per l'autenticazione con le credenziali per il account di servizio rappresentato
Dopo aver creato credenziali di breve durata per un account di servizio, puoi utilizzarle per impersonare il account di servizio quando chiami le API. Google Cloud
Alcuni dei metodi che chiami potrebbero generare audit log. In generale, queste voci di log mostrano le seguenti identità:
- Il account di servizio che le credenziali di breve durata impersonano
- L'identità che ha creato le credenziali di breve durata
Ad esempio, supponiamo che l'utente jamie@example.com
crei un token federato per il soggetto principal://iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/aws-pool/subject/jamie@example.com
, quindi utilizzi il token federato per creare credenziali di breve durata per l'account di servizio my-service-account@my-project.iam.gserviceaccount.com
.
L'utente crea quindi un nuovo argomento Pub/Sub utilizzando le credenziali di breve durata per impersonare il account di servizio. Pub/Sub genera una voce di log che identifica il account di servizio, nonché il soggetto del token del fornitore di identità:
{
"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"
}
}
Passaggi successivi
- Configura e visualizza gli audit log per IAM.
- Scopri di più su Cloud Audit Logs.
- Configura la federazione delle identità utilizzando i pool di identità dei carichi di lavoro.
- Scopri di più sugli service account.