En esta página, se muestran ejemplos de los registros de auditoría que se generan cuando usas la federación de Workforce Identity. Con la federación de Workforce Identity, puedes permitir que las identidades de terceros accedan a los recursos de Google Cloud sin usar una clave de cuenta de servicio.
Para obtener más información sobre cómo habilitar y ver los registros de auditoría, consulta Registros de auditoría de IAM.
IAM puede generar registros de auditoría cuando creas y administras grupos de personal. Para habilitar los registros de auditoría cuando administras grupos de personal, debes habilitar los registros de auditoría para la actividad de acceso a los datos en la siguiente API:
- API de Identity and Access Management (IAM) (habilita el tipo de registro “Lectura de administración”)
A fin de configurar más los registros de auditoría para el proceso de intercambio de tokens o el acceso a la consola de Google Cloud (federada) también debes habilitar los registros de auditoría para la actividad de acceso a los datos de la siguiente manera: API:
- API del servicio de token de seguridad (habilita el tipo de registro “Lectura de administración”)
Registros para crear un grupo de trabajadores
En el siguiente ejemplo, se muestra una entrada de registro para crear un grupo de personal. En este ejemplo, el usuario sam@example.com
creó un grupo de trabajadores con el ID my-pool
en la organización con el 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" } }
Registros para intercambiar el token de un proveedor de identidad por un token federado
Después de configurar tus grupos de trabajadores y proveedores de identidad, puedes crear un token para tu proveedor de identidad y, luego, intercambiarlo por un token federado.
Después de habilitar los Registros de auditoría de Cloud para la actividad de acceso a los datos, IAM genera una entrada de registro de auditoría cada vez que una principal intercambia un token. En la entrada de registro, se incluyen los siguientes campos:
protoPayload.authenticationInfo.principalSubject
: Es el asunto del token del proveedor de identidad.- Para proveedores de identidad de OIDC, este campo contiene el valor del
sub
o el asunto de la reclamación de OIDC. - Para los proveedores de identidad SAML, este campo contiene el valor del subatributo
NameID
del atributoSubject
en la aserción de SAML.
- Para proveedores de identidad de OIDC, este campo contiene el valor del
protoPayload.metadata.mapped_principal
: Es el asunto del token, con la sintaxis de IAM para identificar el principal:principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/IDENTIFIER
protoPayload.resourceName
: El proveedor de grupos de personal con el que se asocia el token.
En el siguiente ejemplo, se muestra una entrada de registro de auditoría para una solicitud a fin de intercambiar un token. En este ejemplo, se intercambia un token de OIDC por un token federado:
{ "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" } }
Registros para llamar a las API de Google Cloud con el token federado
Después de intercambiar el token del proveedor de identidad por un token federado, puedes usar el token federado para llamar a las API de Google Cloud. Puede que algunos de los métodos que llames generen registros de auditoría.
En el siguiente ejemplo, se muestra una entrada de registro de auditoría de una solicitud para enumerar los buckets de Cloud Storage en un proyecto mediante un token federado.
{ "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" } }
Accede a los registros de la consola de Google Cloud (federada)
Después de configurar tus grupos de identidades de personal y sus proveedores de identidad, los usuarios pueden acceder a Google Cloud mediante el inicio de sesión único.
Registros para acceso exitoso
En esta sección, se proporciona un ejemplo de una entrada de registros de auditoría de Cloud que se registra como resultado de un acceso exitoso. En este ejemplo, el usuario, user@example.com
, accede con un proveedor locations/global/workforcePools/my-pool/providers/my-provider
. En este caso, se genera la siguiente entrada de registros de auditoría de Cloud:
{
"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 entrada de registros de auditoría de Cloud para proveedores de SAML también puede contener información de claves de firma en el campo de metadatos.
{
"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",
}
],
}
}
Registros de acceso con errores
En esta sección, se proporciona un ejemplo de una entrada de registros de auditoría de Cloud que se registra como resultado de un acceso con errores. En este ejemplo, el usuario user@example.com
intenta acceder mediante un proveedor locations/global/workforcePools/my-pool/providers/my-provider
, pero se le niega el acceso debido a que no se cumple una condición de atributo. En este caso, se genera la siguiente entrada de registros de auditoría de Cloud:
{
"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",
}
},
}
Registros para salir
En esta sección, se proporciona un ejemplo de una entrada de registros de auditoría de Cloud que se registra como resultado de un evento de cierre de sesión. En este ejemplo, el usuario user@example.com
, que accede con un proveedor locations/global/workforcePools/my-pool/providers/my-provider
, inicia un cierre de sesión. En este caso, se genera la siguiente entrada de registros de auditoría de Cloud:
{
"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"
}
},
}
¿Qué sigue?
- Configura y visualiza los registros de auditoría de IAM.
- Obtén más información sobre los registros de auditoría de Cloud.
- Configura la federación de identidad con grupos de Workforce Identity.