Аудитный лог событий уровня конфигурации
Аудитный лог событий уровня конфигурации — это запись о событиях, которые произошли с ресурсами Yandex Cloud, в форме JSON-объекта.
Формат записей универсален для всех событий. Значения некоторых полей определяются ресурсом-источником и типом события.
Объект события — ресурс сервиса, над которым производится операция. Субъект события — аккаунт, от имени которого производится операция.
Пример аудитного лога уровня конфигурации при создании ВМ
Если федеративный пользователь создаст в сервисе Yandex Compute Cloud ВМ, в аудитный лог попадет такая запись:
{
"event_id": "<идентификатор_события>",
"event_source": "compute",
"event_type": "yandex.cloud.audit.compute.CreateInstance",
"event_time": "<дата_события>",
"authentication": {
"authenticated":true,
"subject_type": "FEDERATED_USER_ACCOUNT",
"subject_id": "<идентификатор_пользователя>",
"subject_name": "<логин_пользователя>",
"federation_id": "<идентификатор_федерации>",
"federation_name": "<имя_федерации>",
"federation_type": "<тип_федерации>"
},
"authorization": {
"authorized":true
},
"resource_metadata": {
"path":[
{
"resource_type": "organization-manager.organization",
"resource_id": "<идентификатор_организации>",
"resource_name": "<имя_организации>"
},
{
"resource_type": "resource-manager.cloud",
"resource_id": "<идентификатор_облака>",
"resource_name": "<имя_облака>"
},
{
"resource_type": "resource-manager.folder",
"resource_id": "<идентификатор_каталога>",
"resource_name": "<имя_каталога>"
}
]
},
"request_metadata": {
"remote_address": "cloud.yandex",
"user_agent": "Yandex Cloud",
"request_id": "<идентификатор_запроса>"
},
"event_status": "DONE",
"details": {
"instance_id": "<идентификатор_ВМ>",
"instance_name": "<имя_ВМ>",
"zone_id": "<зона_доступности_ВМ>",
"platform_id": "standard-v3",
"metadata_keys":[
"ssh-keys",
"user-data",
"install-unified-agent"
],
"network_settings": {
"type": "STANDARD"
},
"placement_policy": {
},
"os": {
"type": "LINUX"
},
"product_ids":[
"<идентификатор_образа>"
],
"resources": {
"memory": "2147483648",
"cores": "2",
"core_fraction": "100"
},
"boot_disk": {
"mode": "READ_WRITE",
"device_name": "<имя_диска>",
"auto_delete":true,
"disk_id": "<идентификатор_диска>"
},
"network_interfaces":[
{
"index": "0",
"mac_address": "<mac_адрес_ВМ>",
"subnet_id": "<идентификатор_подсети>",
"primary_v4_address": {
"address": "<внутренний_адрес_ВМ>",
"one_to_one_nat": {
"address": "<внешний_адрес_ВМ>",
"ip_version": "IPV4"
}
}
}
],
"fqdn": "внутренний_fqdn_ВМ"
}
}
Схема данных
{
"event_id": string,
"event_source": string,
"event_type": string,
"event_time": string,
"authentication": {
"authenticated": boolean,
"subject_type": string,
"subject_id": string,
"subject_name": string,
"federation_id": string,
"federation_name": string,
"federation_type": string,
"token_info": {
"masked_iam_token": string,
"iam_token_id": string,
"impersonator_id": string,
"impersonator_type": string,
"impersonator_name": string,
"impersonator_federation_id": string,
"impersonator_federation_name": string,
"impersonator_federation_type": string
}
},
"authorization": {
"authorized": boolean
},
"resource_metadata": {
"path": [{
"resource_type": string,
"resource_id": string,
"resource_name": string
}]
},
"request_metadata": {
"remote_address": string,
"user_agent": string,
"request_id": string
},
"event_status": string,
"error": {
"code": number,
"message": string,
"details": {
object
}
},
"details": {
object
},
"request_parameters": {
object
},
"response": {
object
}
}
Поле | Описание |
---|---|
event_id |
string Идентификатор события. |
event_source |
string Имя сервиса-источника события. |
event_type |
string Тип события. Определяется сервисом-источником события. Подробнее смотрите в разделе Справочник событий уровня сервисов. |
event_time |
string Время, в которое произошло событие. |
authentication 1 |
object Данные аутентификации субъекта события. |
authentication.authenticated |
boolean Результат аутентификации. Возможные значения:
|
authentication.subject_type |
string Тип субъекта. Возможные значения:
|
authentication.subject_id |
string Идентификатор субъекта. |
authentication.subject_name |
string Имя субъекта. |
authentication.federation_id 2 |
string Идентификатор федерации, в которой состоит федеративный пользователь. |
authentication.federation_name 2 |
string Имя федерации, в которой состоит федеративный пользователь. |
authentication.federation_type 2 |
string Тип федерации. Возможное значение:
|
authentication.token_info 1 |
object Данные аутентификации субъекта события. |
authentication.token_info.masked_iam_token |
string Зашифрованное значение IAM-токена, с которым субъект выполнил запрос. |
authentication.token_info.iam_token_id |
string Идентификатор зашифрованного IAM-токена. |
authentication.token_info.impersonator_id |
string Идентификатор субъекта при использовании имперсонации. |
authentication.token_info.impersonator_type |
string Тип субъекта-имперсонатора. Возможные значения:
|
authentication.token_info.impersonator_name |
string Имя субъекта-имперсонатора. |
authentication.token_info.impersonator_federation_id 2 |
string Идентификатор федерации, в которой состоит федеративный пользователь-имперсонатор. |
authentication.token_info.impersonator_federation_name 2 |
string Имя федерации, в которой состоит федеративный пользователь-имперсонатор. |
authentication.token_info.impersonator_federation_type 2 |
string Тип федерации. Возможное значение:
|
authorization 1 |
object Данные авторизации субъекта события. |
authorization.authorized |
boolean Результат авторизации. Возможные значения:
|
resource_metadata 1 |
object Метаданные объекта события. |
resource_metadata.path[] |
array Путь к ресурсу в котором произошло событие. |
resource_metadata.path[].resource_type |
string Тип ресурса. |
resource_metadata.path[].resource_id |
string Идентификатор ресурса. |
resource_metadata.path[].resource_name |
string Имя ресурса. |
request_metadata |
object Данные о запросе, который инициировал событие. |
request_metadata.remote_address |
string IP-адрес субъекта события. |
request_metadata.user_agent |
string User-Agent субъекта события. |
request_metadata.request_id |
string Идентификатор запроса. |
event_status |
string Статус события. Определяется сервисом-источником и типом события. Возможные значения:
|
error |
object Статус ошибки. Объект типа google.rpc.Status
|
details |
object Детали события. Определяются сервисом-источником и типом события. |
request_parameters 1 |
object Параметры запроса. |
response 1 |
object Полученные данные. |
1 Блок полей используется не для всех типов событий.
2 Поле доступно, когда subject_type
= FEDERATED_USER_ACCOUNT
.
Примечание
Если действие выполнил один из инфраструктурных сервисов Yandex Cloud или сотрудник поддержки, то в поле remote address
будет значение cloud.yandex
, а в поле user agent
— Yandex Cloud
.
Представление аудитного лога
В зависимости от объекта назначения — бакет или лог-группа — изменяется структура и содержимое сообщения, в составе которого Audit Trails передает объекту назначения аудитные логи:
- для бакета — файл, в котором находится массив JSON-объектов аудитного лога;
- для лог-группы — сообщение, в котором находится только один JSON-объект аудитного лога.
Файл аудитного лога в бакете
Шаблон полного имени файла аудитного лога в бакете:
<префикс_объекта>/<идентификатор_трейла>/<год>/<месяц>/<имя_файла.json>
Запись в лог-группе
Значения записей в лог-группе:
- Время — значение поля
event_time
события. - JSON — JSON-объект события.
- Уровень — вычисляется в зависимости от значения
event_status
события:ERROR
— для значенияERROR
;WARN
— для значенияCANCELLED
;INFO
— в остальных случаях.
- Сообщение — содержит значения полей
event_status
,event_type
,subject_name
,cloud_name
,resource_name
.
При загрузке в Cloud Logging события в лог-группе могут дублироваться. Определить, является ли сохраненное в лог-группе событие дублем, вы можете по уникальному идентификатору записи json_payload.event_id
.