

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon VPC Lattice のアクセスログ
<a name="monitoring-access-logs"></a>

アクセスログは、VPC Lattice サービスとリソース設定に関する詳細情報をキャプチャします。これらのアクセスログを使用して、トラフィックパターンを分析し、ネットワーク内のすべてのサービスを監査できます。VPC Lattice サービスでは、 を公開`VpcLatticeAccessLogs`し、リソース設定では、個別に設定する必要がある `VpcLatticeResourceAccessLogs` を公開します。

アクセスログはオプションであり、デフォルトでは無効になっています。アクセスログを有効にした後は、いつでも無効にできます。

**料金**  
アクセスログが公開されると料金が発生します。ユーザーに代わって AWS ネイティブに発行するログは*、販売ログ*と呼ばれます。Vended Logs の料金の詳細については、「[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)」を参照してください。**[ログ]**を選択すると、**[Vended Logs]** の下に価格が表示されます。

**Topics**
+ [アクセスログを有効にするために必要な IAM アクセス許可](#monitoring-access-logs-IAM)
+ [アクセスログの送信先](#monitoring-access-logs-destinations)
+ [アクセスログの有効化](#monitoring-access-logs-enable)
+ [リクエストの追跡](#x-amzn-RequestId-enable)
+ [アクセスログの内容](#monitoring-access-logs-contents)
+ [リソースアクセスログの内容](#monitoring-resource-access-logs-contents)
+ [アクセスログのトラブルシューティング](#monitoring-access-logs-troubleshoot)

## アクセスログを有効にするために必要な IAM アクセス許可
<a name="monitoring-access-logs-IAM"></a>

アクセスログを有効にしてログを送信先に送信するには、使用している IAM ユーザー、グループ、またはロールにアタッチされたポリシーで次のアクションが必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Sid": "ManageVPCLatticeAccessLogSetup",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:GetLogDelivery",
                "logs:UpdateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:ListLogDeliveries",
                "vpc-lattice:CreateAccessLogSubscription",
                "vpc-lattice:GetAccessLogSubscription",
                "vpc-lattice:UpdateAccessLogSubscription",
                "vpc-lattice:DeleteAccessLogSubscription",
                "vpc-lattice:ListAccessLogSubscriptions"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

詳細については、[AWS Identity and Access Management ユーザーガイド]の「[IAM ID アクセス許可の追加と削除](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

IAM ユーザー、IAM グループ、または使用している IAM ロールにアタッチされているポリシーを更新したら、[アクセスログの有効化](#monitoring-access-logs-enable) に進みます。

## アクセスログの送信先
<a name="monitoring-access-logs-destinations"></a>

アクセスログは、次の宛先に送信できます。

**Amazon CloudWatch Logs**
+ VPC Lattice は通常 2 分以内に CloudWatch Logs にログを配信します。ただし、実際のログ配信時間はベストエフォートベースであり、さらにレイテンシーが発生する可能性があることに注意してください。
+ ロググループに特定の権限がない場合は、リソースポリシーが自動的に作成され、CloudWatch ロググループに追加されます。詳細については、「Amazon CloudWatch ユーザーガイド」の「[CloudWatch Logs に送信されたログ](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-CWL)」を参照してください。
+ CloudWatch に送信されたアクセスログは、CloudWatch コンソールの [ロググループ] で確認できます。詳細については、「Amazon CloudWatch ユーザーガイド」の「[CloudWatch Logs に送信されたログデータを表示する](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#ViewingLogData)」を参照してください。

**Amazon S3**
+ VPC Lattice は通常 6 分以内に Amazon S3 にログを配信します。ただし、実際のログ配信時間はベストエフォートベースであり、さらにレイテンシーが発生する可能性があることに注意してください。
+ バケットに特定の権限がない場合は、バケットポリシーが自動的に作成され、Amazon S3 バケットに追加されます。詳細については、「Amazon CloudWatch ユーザーガイド」の「[Amazon S3 に送信されたログ](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3)」を参照してください。
+ Amazon S3 に送信されるアクセスログには、次の命名規則が使用されます。

  ```
  [bucket]/[prefix]/AWSLogs/[accountId]/VpcLattice/AccessLogs/[region]/[YYYY/MM/DD]/[resource-id]/[accountId]_VpcLatticeAccessLogs_[region]_[resource-id]_YYYYMMDDTHHmmZ_[hash].json.gz
  ```
+ Amazon S3 に送信される VpcLatticeResourceAccessLogs は、次の命名規則を使用します。

  ```
  [bucket]/[prefix]/AWSLogs/[accountId]/VpcLattice/ResourceAccessLogs/[region]/[YYYY/MM/DD]/[resource-id]/[accountId]_VpcLatticeResourceAccessLogs_[region]_[resource-id]_YYYYMMDDTHHmmZ_[hash].json.gz
  ```

**Amazon Data Firehose**
+ VPC Lattice は通常、2 分以内に Firehose にログを配信します。ただし、実際のログ配信時間はベストエフォートベースであり、さらにレイテンシーが発生する可能性があることに注意してください。
+ アクセスログを Amazon Data Firehoseに送信する権限を VPC Lattice に付与するサービスにリンクされたロールが自動的に作成されます。この自動ロール作成が正常に行われるには、ユーザーが `iam:CreateServiceLinkedRole` アクションに対する許可を持っている必要があります。詳細については、「Amazon CloudWatch ユーザーガイド」の「[Amazon Data Firehoseにログを送信する](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-Firehose)」を参照してください。
+  Amazon Data Firehoseに送信されたログの表示の詳細については、「Amazon Data Firehose デベロッパーガイド」の「[Amazon Kinesis Data Streams のモニタリング](https://docs.aws.amazon.com//streams/latest/dev/monitoring.html)」を参照してください。

## アクセスログの有効化
<a name="monitoring-access-logs-enable"></a>

次の手順を実行して、アクセスログを取得し、選択した宛先に配信するように設定します。

**Topics**
+ [コンソールを使用してアクセスログを有効にする](#monitoring-access-logs-console)
+ [を使用してアクセスログを有効にする AWS CLI](#monitoring-access-logs-cli)

### コンソールを使用してアクセスログを有効にする
<a name="monitoring-access-logs-console"></a>

作成時に、サービスネットワーク、サービス、またはリソース設定のアクセスログを有効にできます。次の手順で説明するように、サービスネットワーク、サービス、またはリソース設定を作成した後にアクセスログを有効にすることもできます。

**コンソールを使用して基本サービスを作成するには**

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

1. サービスネットワーク、サービス、またはリソースの設定を選択します。

1. **[アクション]**、**[ログ設定を編集]** の順に選択します。

1. **[アクセスログ]** トグルスイッチをオンにします。

1. アクセスログの配信先を次のように追加します。
   + **[CloudWatch ロググループ]** を選択し、ロググループを選択します。ロググループを作成するには、**[CloudWatch でロググループを作成する]** を選択します。
   + **[S3 バケット]** を選択し、プレフィックスを含む S3 バケットパスを入力します。S3 バケットを検索するには、**[S3 を参照]** を選択します。
   + **[Kinesis Data Firehose 配信ストリーム]** を選択し、配信ストリームを選択します。配信ストリームを作成するには、**[Kinesis で配信ストリームを作成]** を選択します。

1. **[Save changes]** (変更の保存) をクリックします。

### を使用してアクセスログを有効にする AWS CLI
<a name="monitoring-access-logs-cli"></a>

CLI コマンド [create-access-log-subscription](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-access-log-subscription.html) を使用して、サービスネットワークまたはサービスのアクセスログを有効にします。

## リクエストの追跡
<a name="x-amzn-RequestId-enable"></a>

 VPC Lattice は、x-amzn-requestid ヘッダーによるオブザーバビリティとデバッグのために、クライアント、ターゲット、ログ間のリクエストの追跡と相関をサポートします。このヘッダーは、クライアントによって設定および送信することも、VPC Lattice によって生成することもでき、ターゲットに送信され、アクセスログでも使用できます。

**デフォルトの 動作**
+ VPC Lattice は、リクエストごとにこのヘッダーを自動的に生成します。
+ 値はランダムに生成された識別子です (デフォルトでは UUID スタイル）。
+ 生成された識別子は次のとおりです。
  + ダウンストリームターゲットに伝播されます。
  +  レスポンスヘッダーでクライアントに返されます。
  + アクセスログへのログイン

**例 (デフォルトレスポンス)**  
以下に、VPC Lattice のデフォルト動作でクライアントに送信されるレスポンスの例を示します。このレスポンスは、valu eof x-amzn-requestid ヘッダーのランダムな値を生成します。

```
{
    "HTTP/1.1 200 OK
    x-amzn-requestid: a9f2c7a1-6b4f-4c79-9e87-ff5a1234a001"
}
```

**値を設定するクライアント**
+ クライアントは、オプションで受信リクエストにこのヘッダーを設定して、自動的に生成された値を上書きできます。
+ 考慮事項
  +  ヘッダー値は UUID 形式に従う必要はありません。
  + ヘッダー値が 512 バイトを超える場合、VPC Lattice はそれを 512 に切り捨てます。
+  正常に上書きされると、指定されたヘッダー値は次のようになります。
  + レスポンスヘッダーに表示される
  + ターゲットに伝達される
  + アクセスログとメトリクスに表示される

**例 (クライアントリクエストの上書き)**  
以下は、ヘッダー値を持つクライアントから送信されたリクエストの例です。

```
{
    "GET /my-service/endpoint HTTP/1.1 
    Host: my-api.example.com
    x-amzn-requestid: trace-request-foobar"
}
```

**例 (デフォルトのオーバーライドレスポンス)**  
以下は、オーバーライドされた値でクライアントに送信されるレスポンスの例です。

```
{
    "HTTP/1.1 200 OK
    x-amzn-requestid: trace-request-foobar"
}
```

## アクセスログの内容
<a name="monitoring-access-logs-contents"></a>

次の表は、アクセスログのエントリのフィールドを示しています。


| フィールド | 説明 | 形式 | 
| --- | --- | --- | 
|  callerPrincipalTags  | リクエストの PrincipalTags。 | JSON | 
|  hostHeader  | リクエストの権限ヘッダー。 | string | 
|  sslCipher  | クライアント TLS 接続を確立するために使用される暗号セットの OpenSSL 名。 | string | 
|  serviceNetworkArn  | サービスネットワーク ARN。 | arn:aws:vpc-lattice:{{region}}:{{account}}:servicenetwork/{{id}} | 
|  resolvedUser  | 認証が有効な場合に認証が行われたときのユーザーの ARN。 | null \| ARN \| "Anonymous" \| "Unknown" | 
|  authDeniedReason  | 認証が有効な場合にアクセスが拒否される理由。 | null \| "Service" \| "Network" \| "Identity" | 
|  requestMethod  | リクエストのメソッドヘッダー。 | string | 
|  targetGroupArn  | ターゲットホストが属するターゲットホストグループ。 | string | 
|  tlsVersion  | TLS バージョン。 | TLSv{{x}} | 
|  userAgent  | ユーザーエージェントヘッダー。 | string | 
|  serverNameIndication  | [HTTPS のみ] ssl 接続ソケットに設定された Server Name Indication (SNI) の値。 | string | 
|  destinationVpcId  | 送信先 VPC ID。 | vpc-{{xxxxxxxx}} | 
|  sourceIpPort  | 送信元の IP アドレスとポート。 | {{ip}}:{{port}} | 
|  targetIpPort  | ターゲットの IP アドレスとポート。 | {{ip}}:{{port}} | 
|  serviceArn  | サービス ARN。 | arn:aws:vpc-lattice:{{region}}:{{account}}:service/{{id}} | 
|  sourceVpcId  | ソース VPC ID。 | vpc-{{xxxxxxxx}} | 
|  requestPath  | リクエストのパス。 | LatticePath?:{{path}} | 
|  startTime  | リクエストの開始時刻。 | {{YYYY}}-{{MM}}-{{DD}}T{{HH}}:{{MM}}:{{SS}}Z | 
|  protocol  | プロトコル。現在は HTTP/1.1 または HTTP/2。 | string | 
|  responseCode  | HTTP レスポンスコード。最終ヘッダーのレスポンスコードのみが記録されます。詳細については、「[アクセスログのトラブルシューティング](#monitoring-access-logs-troubleshoot)」を参照してください。 | integer | 
|  bytesReceived  | 受信した本文とヘッダーのバイト数。 | integer | 
|  bytesSent  | 送信された本文とヘッダーのバイト数。 | integer | 
|  duration  | リクエストの開始時刻から最後のバイトが送信されるまでの合計期間 (ミリ秒単位)。 | integer | 
|  requestToTargetDuration  | リクエストの開始時刻から最後のバイトがターゲットに送信されるまでの合計期間 (ミリ秒単位)。 | integer | 
|  responseFromTargetDuration  | リクエストの最初のバイトがターゲットホストから読み取られてから、最後のバイトがクライアントに送信されるまでの合計期間 (ミリ秒単位)。 | integer | 
|  grpcResponseCode  | gRPC レスポンスコード。詳細については、「[Status codes and their use in gRPC](https://grpc.github.io/grpc/core/md_doc_statuscodes.html)」を参照してください。このフィールドは、サービスが gRPC をサポートしている場合にのみ記録されます。 | integer | 
|  requestId  | これは、x-amzn-requestid ヘッダーの値としてレスポンスに自動的に含まれる一意の識別子です。これにより、クライアント、ターゲット、ログ間のリクエストの相関関係が可能になり、オブザーバビリティとデバッグが可能になります。 | string | 
|  callerPrincipal  | 認証されたプリンシパル。 | string | 
|  callerX509SubjectCN  | サブジェクト名 (CN)。 | string | 
|  callerX509IssuerOU  | 発行者 (OU)。 | string | 
|  callerX509SANNameCN  | 発行者の代替 (名前/CN)。 | string | 
|  callerX509SANDNS  | サブジェクト代替名 (DNS)。 | string | 
|  callerX509SANURI  | サブジェクト代替名 (URI)。 | string | 
|  sourceVpcArn  | リクエストが発生した VPC の ARN。 | arn:aws:ec2:{{region}}:{{account}}:vpc/{{id}} | 
| failureReason | リクエストが失敗した理由を示します。取り得る値には以下のものがあります。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/vpc-lattice/latest/ug/monitoring-access-logs.html) | string | 

**例**  
ログエントリの例を示します。

```
{
    "callerPrincipalTags" : "{ "TagA": "ValA", "TagB": "ValB", ... }",
    "hostHeader": "example.com",
    "sslCipher": "-",
    "serviceNetworkArn": "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/svn-1a2b3c4d",
    "resolvedUser": "Unknown",
    "authDeniedReason": "null",
    "requestMethod": "GET",
    "targetGroupArn": "arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1a2b3c4d",
    "tlsVersion": "-",
    "userAgent": "-",
    "serverNameIndication": "-",
    "destinationVpcId": "vpc-0abcdef1234567890",
    "sourceIpPort": "178.0.181.150:80",
    "targetIpPort": "131.31.44.176:80",
    "serviceArn": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-1a2b3c4d",
    "sourceVpcId": "vpc-0abcdef1234567890",
    "requestPath": "/billing",
    "startTime": "2023-07-28T20:48:45Z",
    "protocol": "HTTP/1.1",
    "responseCode": 200,
    "bytesReceived": 42,
    "bytesSent": 42,
    "duration": 375,
    "requestToTargetDuration": 1,
    "responseFromTargetDuration": 1,
    "grpcResponseCode": 1,
    "requestId": "a9f2c7a1-6b4f-4c79-9e87-ff5a1234a001"
}
```

## リソースアクセスログの内容
<a name="monitoring-resource-access-logs-contents"></a>

次の表に、リソースアクセスログエントリのフィールドを示します。


| フィールド | 説明 | 形式 | 
| --- | --- | --- | 
|  serviceNetworkArn  | サービスネットワーク ARN。 | arn:{{partition}} vpc-lattice:{{region}}:{{account}}:servicenetwork/{{id}} | 
|  serviceNetworkResourceAssociationId  | サービスネットワークリソース ID。 | {{snra}}-{{xxx}} | 
|  vpcEndpointId  | リソースへのアクセスに使用されたエンドポイント ID。 | string | 
|  sourceVpcArn  | 接続が開始されたソース VPC ARN または VPC。 | string | 
|  resourceConfigurationArn  | アクセスされたリソース設定の ARN。 | string | 
|  protocol  | リソース設定との通信に使用されるプロトコル。現在、tcp のみがサポートされています。 | string | 
|  sourceIpPort  | 接続を開始したソースの IP アドレスとポート。 | {{ip}}:{{port}} | 
|  destinationIpPort  | 接続が開始された IP アドレスとポート。これは SN-E/SN-A の IP になります。 | {{ip}}:{{port}} | 
|  gatewayIpPort  | リソースゲートウェイがリソースにアクセスするために使用する IP アドレスとポート。 | {{ip}}:{{port}} | 
|  resourceIpPort  | リソースの IP アドレスとポート。 | {{ip}}:{{port}} | 

**例**  
ログエントリの例を示します。

```
{
    "eventTimestamp": "2024-12-02T10:10:10.123Z",
    "serviceNetworkArn": "arn:aws:vpc-lattice:us-west-2:1234567890:servicenetwork/sn-1a2b3c4d",
    "serviceNetworkResourceAssociationId": "snra-1a2b3c4d",
    "vpcEndpointId": "vpce-01a2b3c4d",
    "sourceVpcArn": "arn:aws:ec2:us-west-2:1234567890:vpc/vpc-01a2b3c4d",
    "resourceConfigurationArn": "arn:aws:vpc-lattice:us-west-2:0987654321:resourceconfiguration/rcfg-01a2b3c4d",
    "protocol": "tcp",
    "sourceIpPort": "172.31.23.56:44076",
    "destinationIpPort": "172.31.31.226:80",
    "gatewayIpPort": "10.0.28.57:49288",
    "resourceIpPort": "10.0.18.190:80"
}
```

## アクセスログのトラブルシューティング
<a name="monitoring-access-logs-troubleshoot"></a>

このセクションでは、アクセスログに表示される可能性のある HTTP エラーコードについて説明します。


| エラーコード | 考えられる原因 | 
| --- | --- | 
| HTTP 400: Bad Request |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/vpc-lattice/latest/ug/monitoring-access-logs.html)  | 
| HTTP 403: Forbidden | 認証はサービスに対して設定されているが、受信リクエストは認証も承認もされていない。 | 
| HTTP 404: Non Existent Service | 存在しないサービスに接続しようとしているか、適切なサービスネットワークに登録されていない。 | 
| HTTP 500: 内部サーバーエラー | VPC Lattice でターゲットに接続できないなどのエラーが発生した。 | 
| HTTP 502: Bad Gateway | VPC Lattice でエラーが発生した。 | 