En esta página se muestran ejemplos de los registros de auditoría que se generan cuando se usa Workload Identity Federation. Con la federación de identidades de carga de trabajo, puedes permitir que una carga de trabajo on-premise o multinube acceda a los recursos 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 Registro de auditoría de IAM.
Registros para intercambiar un token de IdP por un token federado
Una vez que hayas configurado tus grupos de identidades de carga de trabajo y tu proveedor de identidades, podrás crear un token para tu proveedor de identidades e intercambiarlo por un token federado.
IAM puede generar registros de auditoría cuando las entidades intercambian un token. Para recibir registros de auditoría de todos los pasos del proceso de intercambio de tokens, debe habilitar los registros de auditoría de la actividad de acceso a datos para las siguientes APIs:
- API de Gestión de Identidades y Accesos (IAM) (habilita el tipo de registro "Admin Read")
- API Security Token Service (habilita el tipo de registro "Lectura de administrador")
Después de habilitar los registros de auditoría de la actividad de acceso a datos, Gestión de Identidades y Accesos genera una entrada de registro de auditoría cada vez que un principal intercambia un token. La entrada de registro incluye los siguientes campos:
protoPayload.authenticationInfo.principalSubject
: el asunto del token de proveedor de identidades.- En Amazon Web Services (AWS), este campo contiene el nombre de recurso de Amazon (ARN) del principal que has autenticado.
- En Microsoft Azure, este campo contiene el ID de objeto de la identidad gestionada que ha especificado como asunto del token de Azure.
- En el caso de otros proveedores de identidades de OIDC, este campo contiene el valor de la reclamación
sub
o de asunto del token de OIDC.
protoPayload.metadata.mapped_principal
: el asunto del token, que usa la sintaxis de IAM para identificar la entidad principal:principal://iam.googleapis.com/projects/project-number/locations/global/workloadIdentityPools/pool-id/subject/identifier
protoPayload.resourceName
: el proveedor de grupos de identidades de carga de trabajo al que está asociado el token.
En el siguiente ejemplo se muestra una entrada de registro de auditoría de una solicitud para intercambiar un token. En este ejemplo, se ha intercambiado un token de Microsoft Azure por un 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 aserciones SAML firmadas y cifradas
En esta sección se describen las entradas de registro de Cloud Audit Logs que crea Security Token Service cuando intenta verificar aserciones SAML firmadas o descifrar aserciones cifradas que se envían desde tu IdP.
En el caso de la federación de identidades de cargas de trabajo, la entrada de registro pertinente es similar a la siguiente:
"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 salida incluye los siguientes valores:
fingerprint
: la representación hexadecimal del hash SHA-256 del certificado X.509 que se ha usado para verificar la firma de la credencial SAML. El certificado X.509 se extrae de los metadatos XML de SAML que se adjuntan al proveedor de identidades de carga de trabajo.resourceName
: el nombre del recurso de la clave del proveedor de identidades de carga de trabajo que se ha usado para descifrar la aserción SAML cifrada. Este campo solo está presente si la federación de identidades recibe una respuesta SAML cifrada de tu proveedor de identidades.
Registros de la federación X.509
En esta sección se describen las entradas de registro de Cloud Audit Logs que crea el servicio de tokens de seguridad cuando intenta verificar el certificado de cliente de mTLS con un almacén de confianza preconfigurado.
En el caso de la federación de identidades de cargas de trabajo, la entrada de registro pertinente es similar a la siguiente:
"keyInfo": [ { "certificateType": "trust_anchor" "timeUntilExpiration": 3333405600s "fingerprintSha256": "e33f612a0e426692f29db2c7b17b9e3810ce13f09ad117c67e7227a84fd25ea5" "use": "verify" }
Esta salida incluye los siguientes valores:
certificateType
: el tipo de certificado implicado en la verificación del certificado de cliente, que puede sertrust_anchor
ointermediate_ca
timeUntilExpiration
: tiempo restante en segundos hasta que caduque el certificado cuando se usa en la verificación de la cadena de certificados.fingerprintSha256
: representación hexadecimal del hash SHA-256 del certificado X.509
Registros para crear credenciales de duración reducida de una cuenta de servicio
Una vez que hayas intercambiado el token del proveedor de identidades por un token federado, podrás usarlo para crear credenciales de corta duración para una cuenta de servicio. Todos los servicios de Google te permiten autenticarte con estas credenciales de corta duración.
Después de habilitar los registros de auditoría de gestión de identidades y accesos en la actividad de acceso a datos, Gestión de identidades y accesos genera una entrada de registro de auditoría cada vez que un principal genera credenciales de corta duración para una cuenta de servicio. La entrada de registro incluye los siguientes campos:
protoPayload.authenticationInfo.principalSubject
: el asunto del token federado.resource.labels.email_id
: la cuenta de servicio para la que se generaron las credenciales de corta duración.
En el siguiente ejemplo se muestra una entrada de registro de auditoría de una solicitud para generar un token de acceso de OAuth 2.0 de corta duración para una cuenta de servicio. En este ejemplo, la solicitud se autenticó con credenciales federadas y se crearon credenciales de corta duración para la cuenta de servicio 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 de autenticación con credenciales de la cuenta de servicio suplantada
Después de crear credenciales de duración reducida para una cuenta de servicio, puedes usarlas para suplantar la identidad de la cuenta de servicio cuando llames a las APIs de Google Cloud.
Algunos de los métodos que llamas pueden generar registros de auditoría. En general, estas entradas de registro muestran las siguientes identidades:
- La cuenta de servicio que suplantan las credenciales de duración reducida
- La identidad que ha creado las credenciales de duración reducida
Por ejemplo, supongamos que el usuario jamie@example.com
crea un token federado para el asunto principal://iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/aws-pool/subject/jamie@example.com
y, a continuación, usa el token federado para crear credenciales de corta duración para la cuenta de servicio my-service-account@my-project.iam.gserviceaccount.com
.
A continuación, el usuario crea un tema de Pub/Sub con las credenciales de corta duración para suplantar la cuenta de servicio. Pub/Sub genera una entrada de registro que identifica la cuenta de servicio, así como el asunto del token del proveedor de identidades:
{
"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"
}
}
Siguientes pasos
- Configura y consulta los registros de auditoría de gestión de identidades y accesos.
- Consulta más información sobre los registros de auditoría de Cloud.
- Configura la federación de identidades mediante grupos de identidades de carga de trabajo.
- Consulta información sobre las cuentas de servicio.