

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Verified·Access 로그
<a name="access-logs"></a>

는 각 액세스 요청을 AWS Verified Access 평가한 후 모든 액세스 시도를 기록합니다. 이를 통해 애플리케이션 액세스에 대한 중앙 집중식 가시성을 제공하고 보안 인시던트 및 감사 요청에 신속하게 대응할 수 있습니다. Verified·Access는 Open Cybersecurity Schema Framework(OCSF) 로깅 형식을 지원합니다.

로깅을 활성화하는 경우 로그를 전송할 대상을 구성해야 합니다. 로깅이 제대로 작동하려면 로깅 대상을 구성하는 데 사용되는 IAM 위탁자에게 특정 권한이 있어야 합니다. 각 로깅 대상에 필요한 IAM 권한은 [Verified Access 로깅 권한](access-logs-permissions.md) 섹션에서 확인할 수 있습니다. Verified·Access는 액세스 로그를 게시하기 위한 다음 대상을 지원합니다.
+ Amazon CloudWatch Logs 로그 그룹
+ Amazon S3 버킷
+ Amazon Data Firehose 전송 스트림

**Topics**
+ [Verified Access 로깅 버전](logging-versions.md)
+ [Verified Access 로깅 권한](access-logs-permissions.md)
+ [Verified Access 로그 활성화 또는 비활성화](access-logs-enable.md)
+ [Verified Access 신뢰 컨텍스트 활성화 또는 비활성화](include-trust-context.md)
+ [Verified Access에 대한 OCSF 버전 0.1 로그 예제](ocsfv01-examples.md)
+ [Verified Access에 대한 OCSF 버전 1.0.0-rc.2 로그 예제](ocsfv1-examples.md)

# Verified Access 로깅 버전
<a name="logging-versions"></a>

기본적으로 Verified·Access 로깅 시스템은 Open Cybersecurity Schema Framework(OCSF) 버전 0.1을 사용합니다. 버전 0.1을 사용하는 샘플 로그는 섹션을 참조하세요[Verified Access에 대한 OCSF 버전 0.1 로그 예제](ocsfv01-examples.md).

최신 로깅 버전은 OCSF 버전 1.0.0-rc.2와 호환됩니다. 스키마에 대한 자세한 내용은 [OCSF 스키마](https://schema.ocsf.io/1.0.0-rc.2/classes/access_activity)를 참조하세요. 버전 1.0.0-rc.2를 사용하는 샘플 로그는 섹션을 참조하세요[Verified Access에 대한 OCSF 버전 1.0.0-rc.2 로그 예제](ocsfv1-examples.md).

Verified Access 엔드포인트가 TCP 프로토콜을 사용하는 경우 OCSF 버전 0.1을 사용할 수 없습니다.

**콘솔을 사용하여 로깅 버전을 업그레이드하려면**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. 탐색 창에서 **Verified·Access 인스턴스**를 선택합니다.

1. 적절한 Verified·Access 인스턴스를 선택합니다.

1. **Verified·Access 인스턴스 로깅 구성** 탭에서 **Verified·Access 인스턴스 로깅 구성 수정**을 선택합니다.

1. **업데이트 로그 버전** 드롭다운 목록에서 **ocsf-1.0.0-rc.2**를 선택합니다.

1. **Verified·Access 인스턴스 로깅 구성 수정**을 선택합니다.

**를 사용하여 로깅 버전을 업그레이드하려면 AWS CLI**  
[modify-verified-access-instance-logging-configuration](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-verified-access-instance-logging-configuration.html) 명령을 사용합니다.

# Verified Access 로깅 권한
<a name="access-logs-permissions"></a>

로깅이 제대로 작동하려면 로깅 대상을 구성하는 데 사용되는 IAM 위탁자에게 특정 권한이 있어야 합니다. 다음 섹션에서는 각 로깅 대상에 필요한 권한을 보여줍니다.

**CloudWatch Logs로 전송하려면:**
+ Verified·Access 인스턴스에서 `ec2:ModifyVerifiedAccessInstanceLoggingConfiguration`
+ 모든 리소스에서 `logs:CreateLogDelivery`, `logs:DeleteLogDelivery`, `logs:GetLogDelivery`, `logs:ListLogDeliveries`, 및 `logs:UpdateLogDelivery`
+ 대상 로그 그룹에서 `logs:DescribeLogGroups`, `logs:DescribeResourcePolicies`, 및 `logs:PutResourcePolicy`

**Amazon S3로 전송하려면:**
+ Verified·Access 인스턴스에서 `ec2:ModifyVerifiedAccessInstanceLoggingConfiguration`
+ 모든 리소스에서 `logs:CreateLogDelivery`, `logs:DeleteLogDelivery`, `logs:GetLogDelivery`, `logs:ListLogDeliveries`, 및 `logs:UpdateLogDelivery`
+ 그리고 대상 버킷에서 `s3:GetBucketPolicy` 및 `s3:PutBucketPolicy`

**Firehose로 전송하는 경우:**
+ Verified·Access 인스턴스에서 `ec2:ModifyVerifiedAccessInstanceLoggingConfiguration`
+ 모든 리소스에서 `firehose:TagDeliveryStream`
+ 모든 리소스에서 `iam:CreateServiceLinkedRole`
+ 모든 리소스에서 `logs:CreateLogDelivery`, `logs:DeleteLogDelivery`, `logs:GetLogDelivery`, `logs:ListLogDeliveries`, 및 `logs:UpdateLogDelivery`

# Verified Access 로그 활성화 또는 비활성화
<a name="access-logs-enable"></a>

이 섹션의 절차에 따라 로깅을 활성화하거나 비활성화할 수 있습니다. 로깅을 활성화하는 경우 로그를 전송할 대상을 구성해야 합니다. 로깅이 제대로 작동하려면 로깅 대상을 구성하는 데 사용되는 IAM 위탁자에게 특정 권한이 있어야 합니다. 각 로깅 대상에 필요한 IAM 권한은 [Verified Access 로깅 권한](access-logs-permissions.md) 섹션에서 확인할 수 있습니다.

**Topics**
+ [액세스 로그 활성화](#enable-access-logs)
+ [액세스 로그 비활성화](#disable-access-logs)

## 액세스 로그 활성화
<a name="enable-access-logs"></a>

**활성화하려면**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. 탐색 창에서 **Verified·Access 인스턴스**를 선택합니다.

1. Verified·Access 인스턴스를 선택합니다.

1. **Verified·Access 인스턴스 로깅 구성** 탭에서 **Verified·Access 인스턴스 로깅 구성 수정**을 선택합니다.

1. (선택 사항) 신뢰 공급자가 보낸 신뢰 데이터를 로그에 포함하려면 다음을 수행하십시오.

   1. **업데이트 로그 버전** 드롭다운 목록에서 **ocsf-1.0.0-rc.2**를 선택합니다.

   1. **신뢰 컨텍스트 포함**을 선택합니다.

1. 다음 중 하나를 수행하십시오.
   + **Amazon CloudWatch Logs로 전송**을 활성화합니다. 대상 로그 그룹을 선택합니다.
   + **Amazon S3로 전송**을 활성화합니다. 대상 버킷의 이름, 소유자 및 접두사를 입력합니다.
   + **Firehose로 전송**을 켭니다. 대상 전송 스트림을 선택합니다.

1. **Verified·Access 인스턴스 로깅 구성 수정**을 선택합니다.

**를 사용하여 Verified Access 로그를 활성화하려면 AWS CLI**  
[modify-verified-access-instance-logging-configuration](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-verified-access-instance-logging-configuration.html) 명령을 사용합니다.

## 액세스 로그 비활성화
<a name="disable-access-logs"></a>

Verified·Access 인스턴스의 액세스 로그는 언제든지 비활성화할 수 있습니다. 액세스 로그를 비활성화하면 로그 데이터는 사용자가 삭제할 때까지 로그 대상에 남아 있습니다.

**Verified·Access 로그를 비활성화하려면**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. 탐색 창에서 **Verified·Access 인스턴스**를 선택합니다.

1. Verified·Access 인스턴스를 선택합니다.

1. **Verified·Access 인스턴스 로깅 구성** 탭에서 **Verified·Access 인스턴스 로깅 구성 수정**을 선택합니다.

1. 로그 전송을 끕니다.

1. **Verified·Access 인스턴스 로깅 구성 수정**을 선택합니다.

**를 사용하여 Verified·Access 로그를 비활성화하려면 AWS CLI**  
[modify-verified-access-instance-logging-configuration](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-verified-access-instance-logging-configuration.html) 명령을 사용합니다.

# Verified Access 신뢰 컨텍스트 활성화 또는 비활성화
<a name="include-trust-context"></a>

신뢰 공급자가 보낸 신뢰 컨텍스트는 선택적으로 Verified Access 로그에 포함되도록 활성화할 수 있습니다. 이는 애플리케이션에 대한 액세스를 허용하거나 거부하는 정책을 정의할 때 유용할 수 있습니다. 활성화하면 `data` 필드 아래의 로그에서 신뢰 컨텍스트를 찾을 수 있습니다. 신뢰 컨텍스트가 비활성화되면 `data` 필드가 `null`로 설정됩니다. 로그에 신뢰 컨텍스트를 포함하도록 Verified Access를 구성하려면 다음 절차를 따르세요.

**참고**  
Verified·Access 로그에 신뢰 컨텍스트를 포함하려면 최신 로깅 버전 `ocsf-1.0.0-rc.2`로 업그레이드해야 합니다. 다음 절차에서는 이미 로깅을 활성화했다고 가정합니다. 그렇지 않은 경우 전체 절차 [액세스 로그 활성화](access-logs-enable.md#enable-access-logs)를 참조하십시오.

**Topics**
+ [신뢰 컨텍스트 활성화](#enable-trust-context)
+ [신뢰 컨텍스트 비활성화](#disable-trust-context)

## 신뢰 컨텍스트 활성화
<a name="enable-trust-context"></a>

**콘솔을 사용하여 Verified·Access 로그에 신뢰 컨텍스트를 포함하려면**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. 탐색 창에서 **Verified·Access 인스턴스**를 선택합니다.

1. 적절한 Verified·Access 인스턴스를 선택합니다.

1. **Verified·Access 인스턴스 로깅 구성** 탭에서 **Verified·Access 인스턴스 로깅 구성 수정**을 선택합니다.

1. **업데이트 로그 버전** 드롭다운 목록에서 **ocsf-1.0.0-rc.2**를 선택합니다.

1. **신뢰 컨텍스트 포함**을 활성화합니다.

1. **Verified·Access 인스턴스 로깅 구성 수정**을 선택합니다.

**를 사용하여 Verified Access 로그에 신뢰 컨텍스트를 포함하려면 AWS CLI**  
[modify-verified-access-instance-logging-configuration](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-verified-access-instance-logging-configuration.html) 명령을 사용합니다.

## 신뢰 컨텍스트 비활성화
<a name="disable-trust-context"></a>

로그에 더 이상 신뢰 컨텍스트를 포함하지 않으려면 다음 절차에 따라 신뢰 컨텍스트를 제거할 수 있습니다.

**콘솔을 사용하여 Verified·Access 로그에서 신뢰 컨텍스트를 제거하려면**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. 탐색 창에서 **Verified·Access 인스턴스**를 선택합니다.

1. 적절한 Verified·Access 인스턴스를 선택합니다.

1. **Verified·Access 인스턴스 로깅 구성** 탭에서 **Verified·Access 인스턴스 로깅 구성 수정**을 선택합니다.

1. **신뢰 컨텍스트 포함을** 끕니다.

1. **Verified·Access 인스턴스 로깅 구성 수정**을 선택합니다.

**를 사용하여 Verified Access 로그에서 신뢰 컨텍스트를 제거하려면 AWS CLI**  
[modify-verified-access-instance-logging-configuration](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-verified-access-instance-logging-configuration.html) 명령을 사용합니다.

# Verified Access에 대한 OCSF 버전 0.1 로그 예제
<a name="ocsfv01-examples"></a>

다음은 OCSF 버전 0.1을 사용하는 샘플 로그입니다.

**Topics**
+ [OIDC를 통한 액세스 권한 부여](#access-granted-oidc)
+ [OIDC와 JAMF를 통한 액세스 권한 부여](#access-granted-oidc-jamf)
+ [OIDC와 CrowdStrike를 통한 액세스 권한 부여](#access-granted-oidc-crowdstrike)
+ [쿠키 누락으로 인한 액세스 거부](#access-denied-cookie)
+ [정책으로 인한 액세스 거부](#access-denied-policy)
+ [알 수 없는 로그 항목](#unknown-access)

## OIDC를 통한 액세스 권한 부여
<a name="access-granted-oidc"></a>

이 예제 로그 항목에서 Verified·Access는 OIDC 사용자 신뢰 공급자를 통해 엔드포인트에 대한 액세스를 허용합니다.

```
{
    "activity": "Access Granted",
    "activity_id": "1",
    "category_name": "Application Activity",
    "category_uid": "8",
    "class_name": "Access Logs",
    "class_uid": "208001",
    "device": {
        "ip": "10.2.7.68",
        "type": "Unknown",
        "type_id": 0
    },
    "duration": "0.004",
    "end_time": "1668580194344",
    "time": "1668580194344",
    "http_request": {
        "http_method": "GET",
        "url": {
            "hostname": "hello.app.example.com",
            "path": "/",
            "port": 443,
            "scheme": "https",
            "text": "https://hello.app.example.com:443/"
        },
        "user_agent": "python-requests/2.28.1",
        "version": "HTTP/1.1"
    },
    "http_response": {
        "code": 200
    },
    "identity": {
        "authorizations": [
            {
                "decision": "Allow",
                "policy": {
                    "name": "inline"
                }
            }
        ],
        "idp": {
            "name": "user",
            "uid": "vatp-09bc4cbce2EXAMPLE"
        },
        "user": {
            "email_addr": "johndoe@example.com",
            "name": "Test User Display",
            "uid": "johndoe@example.com",
            "uuid": "00u6wj48lbxTAEXAMPLE"
        }
    },
    "message": "",
    "metadata": {
        "uid": "Root=1-63748362-6408d24241120b942EXAMPLE",
        "logged_time": 1668580281337,
        "version": "0.1",
        "product": {
            "name": "Verified Access",
            "vendor_name": "AWS"
        }
    },
    "ref_time": "2022-11-16T06:29:54.344948Z",
    "proxy": {
        "ip": "192.168.34.167",
        "port": 443,
        "svc_name": "Verified Access",
        "uid": "vai-002fa341aeEXAMPLE"
    },
    "severity": "Informational",
    "severity_id": "1",
    "src_endpoint": {
        "ip": "172.24.57.68",
        "port": "48234"
    },
    "start_time": "1668580194340",
    "status_code": "100",
    "status_details": "Access Granted",
    "status_id": "1",
    "status": "Success",
    "type_uid": "20800101",
    "type_name": "AccessLogs: Access Granted",
    "unmapped": null
}
```

## OIDC와 JAMF를 통한 액세스 권한 부여
<a name="access-granted-oidc-jamf"></a>

이 예제 로그 항목에서 Verified·Access는 OIDC 및 JAMF 디바이스 신뢰 공급자를 통해 엔드포인트에 대한 액세스를 허용합니다.

```
{
    "activity": "Access Granted",
    "activity_id": "1",
    "category_name": "Application Activity",
    "category_uid": "8",
    "class_name": "Access Logs",
    "class_uid": "208001",
    "device": {
        "ip": "10.2.7.68",
        "type": "Unknown",
        "type_id": 0,
        "uid": "41b07859-4222-4f41-f3b9-97dc1EXAMPLE"
    },
    "duration": "0.347",
    "end_time": "1668804944086",
    "time": "1668804944086",
    "http_request": {
        "http_method": "GET",
        "url": {
            "hostname": "hello.app.example.com",
            "path": "/",
            "port": 443,
            "scheme": "h2",
            "text": "https://hello.app.example.com:443/"
        },
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36",
        "version": "HTTP/2.0"
    },
    "http_response": {
        "code": 304
    },
    "identity": {
        "authorizations": [
            {
                "decision": "Allow",
                "policy": {
                    "name": "inline"
                }
            }
        ],
        "idp": {
            "name": "oidc",
            "uid": "vatp-9778003bc2EXAMPLE"
        },
        "user": {
            "email_addr": "johndoe@example.com",
            "name": "Test User Display",
            "uid": "johndoe@example.com",
            "uuid": "4f040d0f96becEXAMPLE"
        }
    },
    "message": "",
    "metadata": {
        "uid": "Root=1-321318ce-6100d340adf4fb29dEXAMPLE",
        "logged_time": 1668805278555,
        "version": "0.1",
        "product": {
            "name": "Verified Access",
            "vendor_name": "AWS"
        }
    },
    "ref_time": "2022-11-18T20:55:44.086480Z",
    "proxy": {
        "ip": "10.5.192.96",
        "port": 443,
        "svc_name": "Verified Access",
        "uid": "vai-3598f66575EXAMPLE"
    },
    "severity": "Informational",
    "severity_id": "1",
    "src_endpoint": {
        "ip": "192.168.20.246",
        "port": 61769
    },
    "start_time": "1668804943739",
    "status_code": "100",
    "status_details": "Access Granted",
    "status_id": "1",
    "status": "Success",
    "type_uid": "20800101",
    "type_name": "AccessLogs: Access Granted",
    "unmapped": null
}
```

## OIDC와 CrowdStrike를 통한 액세스 권한 부여
<a name="access-granted-oidc-crowdstrike"></a>

이 예제 로그 항목에서 Verified·Access는 OIDC 및 CrowdStrike 디바이스 신뢰 공급자를 통해 엔드포인트에 대한 액세스를 허용합니다.

```
{
    "activity": "Access Granted",
    "activity_id": "1",
    "category_name": "Application Activity",
    "category_uid": "8",
    "class_name": "Access Logs",
    "class_uid": "208001",
    "device": {
        "ip": "10.2.173.3",
        "os": {
            "name": "Windows 11",
            "type": "Windows",
            "type_id": 100
        },
        "type": "Unknown",
        "type_id": 0,
        "uid": "122978434f65093aee5dfbdc0EXAMPLE",
        "hw_info": {
            "serial_number": "751432a1-d504-fd5e-010d-5ed11EXAMPLE"
        }
    },
    "duration": "0.028",
    "end_time": "1668816620842",
    "time": "1668816620842",
    "http_request": {
        "http_method": "GET",
        "url": {
            "hostname": "test.app.example.com",
            "path": "/",
            "port": 443,
            "scheme": "h2",
            "text": "https://test.app.example.com:443/"
        },
        "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36",
        "version": "HTTP/2.0"
    },
    "http_response": {
        "code": 304
    },
    "identity": {
        "authorizations": [
            {
                "decision": "Allow",
                "policy": {
                    "name": "inline"
                }
            }
        ],
        "idp": {
            "name": "oidc",
            "uid": "vatp-506d9753f6EXAMPLE"
        },
        "user": {
            "email_addr": "johndoe@example.com",
            "name": "Test User Display",
            "uid": "johndoe@example.com",
            "uuid": "23bb45b16a389EXAMPLE"
        }
    },
    "message": "",
    "metadata": {
        "uid": "Root=1-c16c5a65-b641e4056cc6cb0eeEXAMPLE",
        "logged_time": 1668816977134,
        "version": "0.1",
        "product": {
            "name": "Verified Access",
            "vendor_name": "AWS"
        }
    },
    "ref_time": "2022-11-19T00:10:20.842295Z",
    "proxy": {
        "ip": "192.168.144.62",
        "port": 443,
        "svc_name": "Verified Access",
        "uid": "vai-2f80f37e64EXAMPLE"
    },
    "severity": "Informational",
    "severity_id": "1",
    "src_endpoint": {
        "ip": "10.14.173.3",
        "port": 55706
    },
    "start_time": "1668816620814",
    "status_code": "100",
    "status_details": "Access Granted",
    "status_id": "1",
    "status": "Success",
    "type_uid": "20800101",
    "type_name": "AccessLogs: Access Granted",
    "unmapped": null
}
```

## 쿠키 누락으로 인한 액세스 거부
<a name="access-denied-cookie"></a>

이 예제 로그 항목에서 Verified·Access는 인증 쿠키가 누락되어 액세스를 거부합니다.

```
{
    "activity": "Access Denied",
    "activity_id": "2",
    "category_name": "Application Activity",
    "category_uid": "8",
    "class_name": "Access Logs",
    "class_uid": "208001",
    "device": null,
    "duration": "0.0",
    "end_time": "1668593568259",
    "time": "1668593568259",
    "http_request": {
        "http_method": "POST",
        "url": {
            "hostname": "hello.app.example.com",
            "path": "/dns-query",
            "port": 443,
            "scheme": "h2",
            "text": "https://hello.app.example.com:443/dns-query"
        },
        "user_agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML",
        "version": "HTTP/2.0"
    },
    "http_response": {
        "code": 302
    },
    "identity": null,
    "message": "",
    "metadata": {
        "uid": "Root=1-5cf1c832-a565309ce20cc7dafEXAMPLE",
        "logged_time": 1668593776720,
        "version": "0.1",
        "product": {
            "name": "Verified Access",
            "vendor_name": "AWS"
        }
    },
    "ref_time": "2022-11-16T10:12:48.259762Z",
    "proxy": {
        "ip": "192.168.34.167",
        "port": 443,
        "svc_name": "Verified Access",
        "uid": "vai-108ed7a672EXAMPLE"
    },
    "severity": "Informational",
    "severity_id": "1",
    "src_endpoint": {
        "ip": "10.7.178.16",
        "port": "46246"
    },
    "start_time": "1668593568258",
    "status_code": "200",
    "status_details": "Authentication Denied",
    "status_id": "2",
    "status": "Failure",
    "type_uid": "20800102",
    "type_name": "AccessLogs: Access Denied",
    "unmapped": null
}
```

## 정책으로 인한 액세스 거부
<a name="access-denied-policy"></a>

이 예제 로그 항목에서 Verified·Access는 액세스 정책에 의해 요청이 허용되지 않기 때문에 인증된 요청을 거부합니다.

```
{
    "activity": "Access Denied",
    "activity_id": "2",
    "category_name": "Application Activity",
    "category_uid": "8",
    "class_name": "Access Logs",
    "class_uid": "208001",
    "device": {
        "ip": "10.4.133.137",
        "type": "Unknown",
        "type_id": 0
    },
    "duration": "0.023",
    "end_time": "1668573630978",
    "time": "1668573630978",
    "http_request": {
        "http_method": "GET",
        "url": {
            "hostname": "hello.app.example.com",
            "path": "/",
            "port": 443,
            "scheme": "h2",
            "text": "https://hello.app.example.com:443/"
        },
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36",
        "version": "HTTP/2.0"
    },
    "http_response": {
        "code": 401
    },
    "identity": {
        "authorizations": [],
        "idp": {
            "name": "user",
            "uid": "vatp-e048b3e0f8EXAMPLE"
        },
        "user": {
            "email_addr": "johndoe@example.com",
            "name": "Test User Display",
            "uid": "johndoe@example.com",
            "uuid": "0e1281ad3580aEXAMPLE"
        }
    },
    "message": "",
    "metadata": {
        "uid": "Root=1-531a036a-09e95794c7b96aefbEXAMPLE",
        "logged_time": 1668573773753,
        "version": "0.1",
        "product": {
            "name": "Verified Access",
            "vendor_name": "AWS"
        }
    },
    "ref_time": "2022-11-16T04:40:30.978732Z",
    "proxy": {
        "ip": "3.223.34.167",
        "port": 443,
        "svc_name": "Verified Access",
        "uid": "vai-021d5eaed2EXAMPLE"
    },
    "severity": "Informational",
    "severity_id": "1",
    "src_endpoint": {
        "ip": "10.4.133.137",
        "port": "31746"
    },
    "start_time": "1668573630955",
    "status_code": "300",
    "status_details": "Authorization Denied",
    "status_id": "2",
    "status": "Failure",
    "type_uid": "20800102",
    "type_name": "AccessLogs: Access Denied",
    "unmapped": null
}
```

## 알 수 없는 로그 항목
<a name="unknown-access"></a>

이 예제 로그 항목에서 Verified·Access는 전체 로그 항목을 생성할 수 없으므로 알 수 없는 로그 항목을 내보냅니다. 이렇게 하면 모든 요청이 액세스 로그에 표시됩니다.

```
{
    "activity": "Unknown",
    "activity_id": "0",
    "category_name": "Application Activity",
    "category_uid": "8",
    "class_name": "Access Logs",
    "class_uid": "208001",
    "device": null,
    "duration": "0.004",
    "end_time": "1668580207898",
    "time": "1668580207898",
    "http_request": {
        "http_method": "GET",
        "url": {
            "hostname": "hello.app.example.com",
            "path": "/",
            "port": 443,
            "scheme": "https",
            "text": "https://hello.app.example.com:443/"
        },
        "user_agent": "python-requests/2.28.1",
        "version": "HTTP/1.1"
    },
    "http_response": {
        "code": 200
    },
    "identity": null,
    "message": "",
    "metadata": {
        "uid": "Root=1-435eb955-6b5a1d529343f5adaEXAMPLE",
        "logged_time": 1668580579147,
        "version": "0.1",
        "product": {
            "name": "Verified Access",
            "vendor_name": "AWS"
        }
    },
    "ref_time": "2022-11-16T06:30:07.898344Z",
    "proxy": {
        "ip": "10.1.34.167",
        "port": 443,
        "svc_name": "Verified Access",
        "uid": "vai-6c32b53b3cEXAMPLE"
    },
    "severity": "Informational",
    "severity_id": "1",
    "src_endpoint": {
        "ip": "172.28.57.68",
        "port": "47220"
    },
    "start_time": "1668580207893",
    "status_code": "000",
    "status_details": "Unknown",
    "status_id": "0",
    "status": "Unknown",
    "type_uid": "20800100",
    "type_name": "AccessLogs: Unknown",
    "unmapped": null
}
```

# Verified Access에 대한 OCSF 버전 1.0.0-rc.2 로그 예제
<a name="ocsfv1-examples"></a>

다음은 OCSF 버전 1.0.0-rc.2를 사용하는 샘플 로그입니다.

**Topics**
+ [신뢰 컨텍스트가 포함된 액세스 권한 부여](#ocsfv1-with-trust)
+ [신뢰 컨텍스트가 생략된 액세스 권한 부여](#ocsfv1-without-trust)
+ [네트워크 CIDR 엔드포인트를 사용하여 권한 할당](#ocsfv1-with-tcp)

## 신뢰 컨텍스트가 포함된 액세스 권한 부여
<a name="ocsfv1-with-trust"></a>

```
{
    "activity_name": "Access Grant",
    "activity_id": "1",
    "actor": {
        "authorizations": [{
            "decision": "Allow",
            "policy": {
                "name": "inline"
            }
        }],
        "idp": {
            "name": "user",
            "uid": "vatp-09bc4cbce2EXAMPLE"
        },
        "invoked_by": "",
        "process": {},
        "user": {
            "email_addr": "johndoe@example.com",
            "name": "Test User Display",
            "uid": "johndoe@example.com",
            "uuid": "00u6wj48lbxTAEXAMPLE"
        },
        "session": {}
    },
    "category_name": "Audit Activity",
    "category_uid": "3",
    "class_name": "Access Activity",
    "class_uid": "3006",
    "device": {
        "ip": "10.2.7.68",
        "type": "Unknown",
        "type_id": 0
    },
    "duration": "0.004",
    "end_time": "1668580194344",
    "time": "1668580194344",
    "http_request": {
        "http_method": "GET",
        "url": {
            "hostname": "hello.app.example.com",
            "path": "/",
            "port": 443,
            "scheme": "https",
            "text": "https://hello.app.example.com:443/"
        },
        "user_agent": "python-requests/2.28.1",
        "version": "HTTP/1.1"
    },
    "http_response": {
        "code": 200
    },
    "message": "",
    "metadata": {
        "uid": "Root=1-63748362-6408d24241120b942EXAMPLE",
        "logged_time": 1668580281337,
        "version": "1.0.0-rc.2",
        "product": {
            "name": "Verified Access",
            "vendor_name": "AWS"
        }
    },
    "ref_time": "2022-11-16T06:29:54.344948Z",
    "proxy": {
        "ip": "192.168.34.167",
        "port": 443,
        "svc_name": "Verified Access",
        "uid": "vai-002fa341aeEXAMPLE"
    },
    "severity": "Informational",
    "severity_id": "1",
    "src_endpoint": {
        "ip": "172.24.57.68",
        "port": "48234"
    },
    "start_time": "1668580194340",
    "status_code": "100",
    "status_detail": "Access Granted",
    "status_id": "1",
    "status": "Success",
    "type_uid": "300601",
    "type_name": "Access Activity: Access Grant",
    "data": {
        "context": {
            "oidc": {
                "family_name": "Last",
                "zoneinfo": "America/Los_Angeles",
                "exp": 1670631145,
                "middle_name": "Middle",
                "given_name": "First",
                "email_verified": true,
                "name": "Test User Display",
                "updated_at": 1666305953,
                "preferred_username": "johndoe-user@test.com",
                "profile": "http://www.example.com",
                "locale": "US",
                "nickname": "Tester",
                "email": "johndoe-user@test.com",
                "additional_user_context": {
                    "aud": "xxx",
                    "exp": 1000000000,
                    "groups": [
                        "group-id-1",
                        "group-id-2"
                    ],
                    "iat": 1000000000,
                    "iss": "https://oidc-tp.com/",
                    "sub": "xyzsubject",
                    "ver": "1.0"
                }
            },
            "http_request": {
                "x_forwarded_for": "1.1.1.1,2.2.2.2",
                "http_method": "GET",
                "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36",
                "port": "80",
                "hostname": "hostname.net"
            }
        }
    }
}
```

## 신뢰 컨텍스트가 생략된 액세스 권한 부여
<a name="ocsfv1-without-trust"></a>

```
{
    "activity_name": "Access Grant",
    "activity_id": "1",
    "actor": {
        "authorizations": [{
            "decision": "Allow",
            "policy": {
                "name": "inline"
            }
        }],
        "idp": {
            "name": "user",
            "uid": "vatp-09bc4cbce2EXAMPLE"
        },
        "invoked_by": "",
        "process": {},
        "user": {
            "email_addr": "johndoe@example.com",
            "name": "Test User Display",
            "uid": "johndoe@example.com",
            "uuid": "00u6wj48lbxTAEXAMPLE"
        },
        "session": {}
    },
    "category_name": "Audit Activity",
    "category_uid": "3",
    "class_name": "Access Activity",
    "class_uid": "3006",
    "device": {
        "ip": "10.2.7.68",
        "type": "Unknown",
        "type_id": 0
    },
    "duration": "0.004",
    "end_time": "1668580194344",
    "time": "1668580194344",
    "http_request": {
        "http_method": "GET",
        "url": {
            "hostname": "hello.app.example.com",
            "path": "/",
            "port": 443,
            "scheme": "https",
            "text": "https://hello.app.example.com:443/"
        },
        "user_agent": "python-requests/2.28.1",
        "version": "HTTP/1.1"
    },
    "http_response": {
        "code": 200
    },
    "message": "",
    "metadata": {
        "uid": "Root=1-63748362-6408d24241120b942EXAMPLE",
        "logged_time": 1668580281337,
        "version": "1.0.0-rc.2",
        "product": {
            "name": "Verified Access",
            "vendor_name": "AWS"
        }
    },
    "ref_time": "2022-11-16T06:29:54.344948Z",
    "proxy": {
        "ip": "192.168.34.167",
        "port": 443,
        "svc_name": "Verified Access",
        "uid": "vai-002fa341aeEXAMPLE"
    },
    "severity": "Informational",
    "severity_id": "1",
    "src_endpoint": {
        "ip": "172.24.57.68",
        "port": "48234"
    },
    "start_time": "1668580194340",
    "status_code": "100",
    "status_detail": "Access Granted",
    "status_id": "1",
    "status": "Success",
    "type_uid": "300601",
    "type_name": "Access Activity: Access Grant",
    "data": null
}
```

## 네트워크 CIDR 엔드포인트를 사용하여 권한 할당
<a name="ocsfv1-with-tcp"></a>



```
{
    "activity_id": "1",
    "activity_name": "Assign Privileges",
    "category_name": "Audit Activity",
    "category_uid": "3",
    "class_name": "Authorization",
    "class_uid": "3003",
    "data": {
        "endpoint_type": "cidr",
        "protocol": "tcp",
        "access_path": "public",
        "idp": {
            "name": "my-oidc-instance",
            "uid": "vatp-09bc4cbce2EXAMPLE"
        },
        "authorizations": [{
            "decision": "Allow",
            "policy": {
                "name": "inline"
            }
        }],
        "context": {
            "oidc": {
                "family_name": "Last",
                "zoneinfo": "America/Los_Angeles",
                "exp": 1670631145,
                "middle_name": "Middle",
                "given_name": "First",
                "email_verified": true,
                "name": "Test User Display",
                "updated_at": 1666305953,
                "preferred_username": "johndoe-user@test.com",
                "profile": "http://www.example.com",
                "locale": "US",
                "nickname": "Tester",
                "email": "johndoe-user@test.com",
                "additional_user_context": {
                    "aud": "xxx",
                    "exp": 1000000000,
                    "groups": [
                        "group-id-1",
                        "group-id-2"
                    ],
                    "iat": 1000000000,
                    "iss": "https://oidc-tp.com/",
                    "sub": "xyzsubject",
                    "ver": "1.0"
                }
            },
            "tcp_flow": {
                "destination_ip": "10.0.0.1",
                "destination_port": 22,
                "client_ip": "10.2.7.68"
            }
        }
    },
    "device": {
        "ip":  "10.2.7.68",
        "port": 1002,
        "type": "Unknown",
        "type_id": 0
    },
    "duration": "0.004",
    "end_time": "1668580194344",
    "time": "1668580194344",
    "metadata": {
        "uid": "",
        "logged_time": 1668580281337,
        "version": "1.0.0-rc.2",
        "product": {
            "name": "Verified Access",
            "vendor_name": "AWS"
        }
    },
    "severity": "Informational",
    "severity_id": "1",
    "start_time": "1668580194340",
    "status_code": "200",
    "status_id": "1",
    "status": "Success",
    "type_uid": "300301",
    "type_name": "Authorization: Assign Privileges",
    "count": 1,
    "dst_endpoint": {
        "ip": "107.22.231.155",
        "port": 22
    },
    "privileges": [
        "vae-12345cbce2EXAMPLE"
    ],
    "user": {
        "email_addr": "johndoe-user@test.com",
        "uid": "johndoe-user",
        "uuid": "9bcce02a-fc15-4091-a0b7-874d157c67b8"
    }
}
```