Questa pagina mostra esempi degli audit log generati quando utilizzi la federazione delle identità per la forza lavoro. Con la federazione delle identità della forza lavoro, puoi consentire a identità di terze parti di accedere alle risorse di Google Cloud senza utilizzare una chiave dell'account di servizio.
Per ulteriori informazioni sull'abilitazione e sulla visualizzazione degli audit log, consulta Log di controllo di IAM.
IAM può generare audit log quando crei e gestisci i pool di forza lavoro. Per abilitare gli audit log durante la gestione dei pool di forza lavoro, devi attivare gli audit log per le attività di accesso ai dati per la seguente API:
- API Identity and Access Management (IAM) (abilitazione del tipo di log "Lettura amministratore")
Per configurare ulteriormente gli audit log per il processo di scambio di token o l'accesso (federato) della console Google Cloud, devi anche attivare gli audit log per l'attività di accesso ai dati per la seguente API:
- API Security Token Service (abilita il tipo di log "Lettura amministratore")
Log per la creazione di un pool di forza lavoro
L'esempio seguente mostra una voce di log per la creazione di un pool di forza lavoro. In questo
esempio, l'utente sam@example.com
ha creato un pool di forza lavoro con ID
my-pool
nell'organizzazione con ID 123456789012
.
{ "logName": "organizations/123456789012/logs/cloudaudit.googleapis.com%2Factivity", "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "authenticationInfo": { "principalEmail": "sam@example.com", }, "methodName": "google.iam.admin.v1.WorkforcePools.CreateWorkforcePool", "resourceName": "locations/global/workforcePools/my-pool", "serviceName": "iam.googleapis.com", "request": { "@type": "type.googleapis.com/google.iam.admin.v1.CreateWorkforcePoolRequest", "workforcePool": { "parent": "organizations/123456789012" }, "workforcePoolId": "my-pool" } }, "resource": { "type": "audited_resource" } }
Log per lo scambio del token di un provider di identità con un token federato
Dopo aver configurato i pool di forza lavoro e i provider di identità, puoi creare un token per il tuo provider di identità e scambiarlo con un token federato.
Dopo aver abilitato Cloud Audit Logs 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 del provider di identità.- Per i provider di identità OIDC, questo campo contiene il valore della richiesta
sub
o dell'oggetto, proveniente dal token OIDC. - Per i provider di identità SAML, questo campo contiene il valore dell'attributo secondario
NameID
dell'attributoSubject
nell'asserzione SAML.
- Per i provider di identità OIDC, questo campo contiene il valore della richiesta
protoPayload.metadata.mapped_principal
: l'oggetto del token, utilizzando la sintassi IAM per identificare l'entità:principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/IDENTIFIER
protoPayload.resourceName
: il provider del pool di forza lavoro 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 OIDC viene scambiato con un token federato:
{ "logName": "organizations/123456789012/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/locations/global/workforcePools/oidc-pool/subject/a1234bcd-5678-9012-efa3-4b5cd678ef9a" }, "methodName": "google.identity.sts.v1.SecurityTokenService.ExchangeToken", "resourceName": "locations/global/workforcePools/oidc-pool/providers/oidc-provider", "serviceName": "sts.googleapis.com", "request": { "@type": "type.googleapis.com/google.identity.sts.v1.ExchangeTokenRequest", "audience": "//iam.googleapis.com/locations/global/workforcePools/oidc-pool/providers/oidc-provider", "grantType": "urn:ietf:params:oauth:grant-type:token-exchange", "requestedTokenType": "urn:ietf:params:oauth:token-type:access_token", "subjectTokenType": "urn:ietf:params:oauth:token-type:id_token" } }, "resource": { "type": "audited_resource" } }
Log per le chiamate alle API Google Cloud con il token federato
Dopo aver scambiato il token del provider di identità con un token federato, puoi utilizzare il token federato per chiamare le API Google Cloud. Alcuni dei metodi da te chiamati potrebbero generare audit log.
L'esempio seguente mostra una voce di log di controllo per una richiesta di elenco dei bucket Cloud Storage in un progetto che utilizza un token federato.
{ "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/locations/global/workforcePools/oidc-pool/subject/012345678901" }, "methodName": "storage.buckets.list", "serviceName": "storage.googleapis.com", }, "resource": { "type": "gcs_bucket" } }
Log per l'accesso (federato) alla console Google Cloud
Dopo aver configurato i pool di identità della forza lavoro e i relativi provider di identità, gli utenti possono accedere a Google Cloud utilizzando il Single Sign-On.
Log per l'accesso riuscito
Questa sezione fornisce un esempio di Cloud Audit Logs che viene registrato in seguito a un accesso riuscito. In questo esempio, l'utente user@example.com
accede utilizzando un provider locations/global/workforcePools/my-pool/providers/my-provider
. In questo caso, viene generata la seguente voce di Cloud Audit Logs:
{
"logName": "organizations/my-organization-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"principalSubject": "user@example.com",
},
"serviceName": "sts.googleapis.com",
"methodName": "google.identity.sts.SecurityTokenService.WebSignIn",
"resourceName": "locations/global/workforcePools/my-pool/providers/my-provider",
"request": {
"@type": "type.googleapis.com/google.identity.sts.SecurityTokenService.WebSignInRequest",
"provider": "//iam.googleapis.com/locations/global/workforcePools/my-pool/providers/my-provider",
"continueUrl": "https://console.cloud.google",
"host": "http://auth.cloud.google",
},
"metadata": {
"mappedPrincipal": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
}
},
"resource": {
"type": "audited_resource",
"labels": {
"service": "sts.googleapis.com",
"method": "google.identity.sts.SecurityTokenService.WebSignIn",
}
},
}
La voce Cloud Audit Logs per i provider SAML può inoltre contenere informazioni sulla chiave di firma nel campo dei metadati.
{
"metadata": {
"mappedPrincipal": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
"keyInfo": [
{
"use": "verify",
"fingerprint": "AE:CK:LM:EF:LK:OG:EH:IJ:KN:AL:OM:AD:NO",
}
],
}
}
Log per accesso non riuscito
Questa sezione fornisce un esempio di Cloud Audit Logs che viene registrato in seguito a un accesso non riuscito. In questo esempio, l'utente user@example.com
tenta di accedere utilizzando un provider locations/global/workforcePools/my-pool/providers/my-provider
, ma nega l'accesso perché la condizione di un attributo non è soddisfatta. In questo caso, viene generata la seguente voce di Cloud Audit Logs:
{
"logName": "organizations/my-organization-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"principalSubject": "user@example.com",
},
"status": {
"code": 3,
"message": "The given credential is rejected by the attribute condition.",
},
"serviceName": "sts.googleapis.com",
"methodName": "google.identity.sts.SecurityTokenService.WebSignIn",
"resourceName": "locations/global/workforcePools/my-pool/subject/user@example.com",
"request": {
"@type": "type.googleapis.com/google.identity.sts.SecurityTokenService.WebSignInRequest",
"provider": "//iam.googleapis.com/locations/global/workforcePools/my-pool/providers/my-provider",
"host": "http://auth.cloud.google",
},
"metadata": {
"mappedPrincipal": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
}
},
"resource": {
"type": "audited_resource",
"labels": {
"service": "sts.googleapis.com",
"method": "google.identity.sts.SecurityTokenService.WebSignIn",
}
},
}
Log per disconnessione
Questa sezione fornisce un esempio di Cloud Audit Logs che viene registrato in seguito a un evento di disconnessione. In questo esempio, l'utente user@example.com
, che ha eseguito l'accesso utilizzando un provider locations/global/workforcePools/my-pool/providers/my-provider
, avvia una disconnessione. In questo caso, viene generata la seguente voce di Cloud Audit Logs:
{
"logName": "organizations/my-organization-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"principalSubject": "user@example.com",
},
"serviceName": "sts.googleapis.com",
"methodName": "google.identity.sts.SecurityTokenService.WebSignOut",
"resourceName": "locations/global/workforcePools/my-pool/providers/my-provider",
"request": {
"@type": "type.googleapis.com/google.identity.sts.SecurityTokenService.WebSignOutRequest",
"provider": "//iam.googleapis.com/locations/global/workforcePools/my-pool/providers/my-provider",
"host": "http://auth.cloud.google"
},
"metadata": {
"mappedPrincipal": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
}
},
"resource": {
"type": "audited_resource",
"labels": {
"service": "sts.googleapis.com",
"method": "google.identity.sts.SecurityTokenService.WebSignOut"
}
},
}
Passaggi successivi
- Configura e visualizza gli audit log per IAM.
- Scopri di più su Cloud Audit Logs.
- Configurare la federazione delle identità utilizzando i pool di identità della forza lavoro.