Аудитный лог событий уровня конфигурации
Аудитный лог событий уровня конфигурации — это запись о событиях, которые произошли с ресурсами 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,
"impersonator_info": {
"impersonator_id": string,
"type": string,
"name": string,
"federation_id": string,
"federation_name": string,
"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
}
}
Поле | Описание |
---|---|
event_id |
string Идентификатор события. |
event_source |
string Имя сервиса-источника события. |
event_type |
string Тип события. Определяется сервисом-источником события. Подробнее смотрите в разделе Справочник событий уровня конфигурации. |
event_time |
string Время, в которое произошло событие. |
authentication |
object Данные аутентификации субъекта события. |
authentication.authenticated |
boolean Результат аутентификации. Возможные значения:
|
authentication.subject_type |
string Тип субъекта. Возможные значения:
|
authentication.subject_id |
string Идентификатор субъекта. |
authentication.subject_name |
string Имя субъекта. |
authentication.federation_id * |
string Идентификатор федерации, в которой состоит федеративный пользователь. |
authentication.federation_name * |
string Имя федерации, в которой состоит федеративный пользователь. |
authentication.federation_type * |
string Тип федерации. Возможное значение:
|
authentication.impersonator_info |
object Данные аутентификации субъекта события при использовании имперсонации. |
authentication.impersonator_info.impersonator_id |
string Идентификатор субъекта-имперсонатора. |
authentication.impersonator_info.type |
string Тип субъекта-имперсонатора. Возможные значения:
|
authentication.impersonator_info.name |
string Имя субъекта-имперсонатора. |
authentication.impersonator_info.federation_id * |
string Идентификатор федерации, в которой состоит федеративный пользователь-имперсонатор. |
authentication.impersonator_info.federation_name * |
string Имя федерации, в которой состоит федеративный пользователь-имперсонатор. |
authentication.impersonator_info.federation_type * |
string Тип федерации. Возможное значение:
|
authorization |
object Данные авторизации субъекта события. |
authorization.authorized |
boolean Результат авторизации. Возможные значения:
|
resource_metadata |
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 Детали события. Определяются сервисом-источником и типом события. |
* Поле доступно, когда 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
.