

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

# AWS トランジットゲートウェイフローログ
<a name="tgw-flow-logs"></a>

トランジットゲートウェイフローログは AWS 、トランジットゲートウェイとの間で送受信される IP トラフィックに関する情報をキャプチャできる Transit Gateway の機能です。フローログデータは、Amazon CloudWatch Logs、Amazon S3、または Firehose に発行できます。フローログを作成したら、選択した送信先でそのデータを取得して表示できます。フローログデータはネットワークトラフィックのパスの外で収集されるため、ネットワークのスループットやレイテンシーには影響しません。ネットワークパフォーマンスに影響を与えるリスクなしに、フローログを作成または削除できます。Transit Gateway フローログは、「[Transit Gateway Flow Log のレコード](#flow-log-records)」で説明されている Transit Gateway のみに関連する情報をキャプチャします。VPC 内のネットワークインターフェイスとの間で送受信される IP トラフィックに関する情報をキャプチャする場合は、VPC フローログを使用します。詳細については、「Amazon VPC ユーザーガイド」の「[VPC フローログを使用した IP トラフィックのログ記録](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)」を参照してください。

**注記**  
Transit Gateway フローログを作成するには、Transit Gateway の所有者である必要があります。ユーザーが所有者でない場合は、Transit Gateway の所有者からアクセス許可を付与する必要があります。

モニタリングされる Transit Gateway のフローログデータは、フローログレコードとして記録されます。これは、トラフィックフローについて説明するフィールドで構成されるログイベントです。詳細については、「[Transit Gateway Flow Log のレコード](#flow-log-records)」を参照してください。

フローログを作成するには、以下の内容を指定します。
+ フローログを作成するリソース
+ フローログデータを発行する送信先

フローログを作成後、データ収集と選択された送信先へのデータ発行が開始されるまでに数分かかる場合があります。フローログで、Transit Gateway のリアルタイムのログストリームはキャプチャされません。

フローログにタグを適用できます。タグはそれぞれ、1 つのキーとオプションの 1 つの値で構成されており、どちらもお客様側が定義します。タグは、目的や所有者などによって、フローログを整理するのに役立ちます。

フローログが不要になった場合には、それを削除することができます。フローログを削除すると、リソースのフローログサービスは無効になり、新しいフローログレコードは作成されず、CloudWatch Logs または Amazon S3 にも発行されません。フローログを削除しても、Transit Gateway の既存のフローログレコードやログストリーム (CloudWatch Logs の場合) またはログファイルオブジェクト (Amazon S3 の場合) は削除されません。既存のログストリームを削除するには、CloudWatch Logs コンソールを使用します。既存のログファイルオブジェクトを削除するには、Amazon S3 コンソールを使用します。フローログを削除した後で、データの収集が中止するまでに数分かかる場合があります。詳細については、「[AWS Transit Gateway フローログレコードを削除する](delete-flow-log.md)」を参照してください。

CloudWatch Logs、Amazon S3、または Amazon Data Firehose にデータを発行できる Transit Gateway のフローログを作成できます。詳細については次を参照してください:
+  [CloudWatch Logs に発行するフローログの作成 ](flow-logs-cwl-create-flow-log.md)
+ [Amazon S3 に発行するフローログの作成](flowlog-s3-create.md)
+ [Firehose に発行するフローログの作成](flow-logs-kinesis-create.md)

## 制限事項
<a name="flow-logs-limits"></a>

Transit Gateway フローログには、次の制限が適用されます。
+  マルチキャストトラフィックはサポートされていません。
+ Connect アタッチメントはサポートされていません。すべての Connect フローログはトランスポートアタッチメントの下に表示されるため、Transit Gateway または Connect トランスポートアタッチメントで有効にする必要があります。

## Transit Gateway Flow Log のレコード
<a name="flow-log-records"></a>

フローログレコードは、Transit Gateway のネットワークフローを表します。各レコードは、スペースで区切られたフィールドから成る文字列です。送信元、送信先、プロトコルなど、レコードにはトラフィックフローのさまざまなコンポーネントの値が含まれています。

フローログを作成するときは、フローログレコードのデフォルトの形式を使用するか、カスタム形式を指定できます。

**Topics**
+ [デフォルトの形式](#flow-logs-default)
+ [カスタム形式](#flow-logs-custom)
+ [使用可能なフィールド](#flow-logs-fields)

### デフォルトの形式
<a name="flow-logs-default"></a>

デフォルトの形式では、フローログレコードには、[使用可能なフィールド](#flow-logs-fields)テーブルに表示される順序でバージョン 2 から 6 のフィールドが含まれます 。デフォルトの形式をカスタマイズまたは変更することはできません。使用可能なすべてのフィールドまたはフィールドの異なるサブセットをキャプチャするには、代わりにカスタム形式を指定します。

### カスタム形式
<a name="flow-logs-custom"></a>

カスタム形式を使用して、フローログレコードに含めるフィールドと順序を指定します。これにより、ニーズに合ったフローログを作成し、関連のないフィールドを省略できます。カスタム形式を使用すると、発行されたフローログから特定の情報を抽出する別個のプロセスが不要になります。使用可能なフローログフィールドは任意の数指定できますが、少なくとも 1 つ指定する必要があります。

### 使用可能なフィールド
<a name="flow-logs-fields"></a>

次の表に、Transit Gateway フローログレコードの使用可能なすべてのフィールドを示します。**Version** 列には、フィールドが導入されたバージョンが表示されます。

Amazon S3 にフローログデータを公開する場合、フィールドのデータ型はフローログ形式によって異なります。形式がプレーンテキストの場合、すべてのフィールドは STRING 形式です。形式が Parquet の場合は、フィールドのデータ型の表を参照してください。

フィールドが特定のレコードに該当しないか、特定のレコードに対して計算できなかった場合、レコードでそのエントリには「-」記号が表示されます。パケットヘッダーから直接取得されないメタデータフィールドは、ベストエフォート近似値であり、値が欠落しているか、不正確である可能性があります。


| フィールド | 説明 | バージョン | 
| --- | --- | --- | 
|  version  |  フィールドが導入されたバージョンを示します。デフォルトの形式には、すべてのバージョン 2 フィールドが含まれ、順番はテーブルと同じです。 **Parquet データ型:** INT\$132  | 2 | 
| resource-type | サブスクリプションが作成されるリソースのタイプ。Transit Gateway フローログの場合、これは TransitGateway になります。Parquet データ型: STRING | 6 | 
| account-id |  ソーストランジットゲートウェイの所有者の AWS アカウント ID。 **Parquet データ型:** STRING  | 2 | 
|  tgw-id  | トラフィックが記録される Transit Gateway の ID。**Parquet データ型:** STRING | 6 | 
|  tgw-attachment-id  | トラフィックが記録される Transit Gateway アタッチメントの ID。**Parquet データ型:** STRING | 6 | 
|  tgw-src-vpc-account-id  |  ソース VPC トラフィックの AWS アカウント ID。 **Parquet データ型:** STRING   | 6 | 
|  tgw-dst-vpc-account-id  |  送信先 VPC トラフィックの AWS アカウント ID。 **Parquet データ型:** STRING   | 6 | 
|  tgw-src-vpc-id  |  Transit Gateway の送信元 VPC の ID。**Parquet データ型:** STRING  | 6 | 
|  tgw-dst-vpc-id  |  Transit Gateway の送信先 VPC の ID。 **Parquet データ型:** STRING   | 6 | 
|  tgw-src-subnet-id  |  Transit Gateway 送信元トラフィックのサブネットの ID。 **Parquet データ型:** STRING   | 6 | 
|  tgw-dst-subnet-id  |  Transit Gateway 送信先トラフィックのサブネットの ID。 **Parquet データ型:** STRING   | 6 | 
| tgw-src-eni |  フローの送信元 Transit Gateway アタッチメント ENI の ID。 **Parquet データ型:** STRING   | 6 | 
| tgw-dst-eni | フローの送信先 Transit Gateway アタッチメント ENI の ID。**Parquet データ型:** STRING  | 6 | 
|  tgw-src-az-id  |  トラフィックが記録される Transit Gateway を含むアベイラビリティーゾーンの ID。トラフィックがサブロケーションからの場合、レコードにはこのフィールドに「-」記号が表示されます。 **Parquet データ型:** STRING  | 6 | 
|  tgw-dst-az-id  |  トラフィックが記録される送信先 Transit Gateway を含むアベイラビリティーゾーンの ID。 **Parquet データ型:** STRING  | 6 | 
| tgw-pair-attachment-id |   フローの方向に応じて、これはフローの出力または入力のアタッチメント ID になります。 **Parquet データ型:** STRING  | 6 | 
|  srcaddr  |  受信トラフィックの送信元アドレス。 **Parquet データ型:** STRING  | 2 | 
|  dstaddr  |  送信トラフィックの送信先アドレス。 **Parquet データ型:** STRING  | 2 | 
|  srcport  |  トラフィックの送信元ポート。 **Parquet データ型:** INT\$132   | 2 | 
|  dstport  |  トラフィックの送信先ポート。 **Parquet データ型:** INT\$132  | 2 | 
|  protocol  |  トラフィックの IANA プロトコル番号。詳細については、「[割り当てられたインターネットプロトコル番号](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)」を参照してください。 **Parquet データ型:** INT\$132  | 2 | 
|  packets  |  フロー中に転送されたパケットの数。 **Parquet データ型:** INT\$164  | 2 | 
|  bytes  |  フロー中に転送されたバイト数。 **Parquet データ型:** INT\$164  | 2 | 
|  start  |  集約間隔内にフローの最初のパケットが受信された時間 (UNIX 秒)。これは、パケットが Transit Gateway 上で送信または受信されてから最大 60 秒になる場合があります。 **Parquet データ型:** INT\$164  | 2 | 
|  end  |  集約間隔内にフローの最後のパケットが受信された時間 (UNIX 秒)。これは、パケットが Transit Gateway 上で送信または受信されてから最大 60 秒になる場合があります。 **Parquet データ型:** INT\$164  | 2 | 
| log-status |  フローログのステータス。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/vpc/latest/tgw/tgw-flow-logs.html) **Parquet データ型:** STRING  | 2 | 
| type |  トラフィックの種類。指定できる値は、IPv4 \$1 IPv6 \$1 EFA です。詳細については、「Amazon EC2 ユーザーガイド」の「[Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html)」を参照してください。 **Parquet データ型:** STRING  | 3 | 
|  packets-lost-no-route  |  ルートが指定されていないためにパケットが失われました。 **Parquet データ型:** INT\$164   | 6 | 
|  packets-lost-blackhole  |  ブラックホールのためにパケットが失われました。 **Parquet データ型:** INT\$164   | 6 | 
|  packets-lost-mtu-exceeded  |  MTU を超えるサイズのためにパケットが失われました。 **Parquet データ型:** INT\$164   | 6 | 
|  packets-lost-ttl-expired  |  存続可能期間の満了によりパケットが失われました。 **Parquet データ型:** INT\$164   | 6 | 
|  tcp-flags  |  次の TCP フラグのビットマスク値: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/vpc/latest/tgw/tgw-flow-logs.html)  フローログエントリが ACK パケットのみで構成されている場合、フラグ値は 16 ではなく 0 になります。  TCP フラグの一般的な情報 (FIN、SYN、ACK などのフラグの意味など) については、Wikipedia の[「TCP セグメント構造」](https://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure)を参照してください。 TCP フラグは、集約間隔内に OR 処理することができます。短い接続の場合、フラグがフローログレコードの同じ行に設定されることがあります (例えば、SYN-ACK と FIN の場合は 19、SYN と FIN の場合は 3 など)。 **Parquet データ型:** INT\$132  | 3 | 
|  region  |  トラフィックが記録される Transit Gateway を含むリージョン。 **Parquet データ型:** STRING  | 4 | 
|  flow-direction  |  トラフィックがキャプチャされるインターフェイスに対するフローの方向。指定できる値は次のとおりです: ingress \$1 egress。 **Parquet データ型:** STRING  | 5 | 
|  pkt-src-aws-service  |  ソース [IP アドレスが サービスのものである場合の の IP アドレス範囲](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ip-ranges.html)のサブセットの名前。 srcaddr AWS 指定可能な値は次のとおりです:AMAZON \$1AMAZON\$1APPFLOW \$1AMAZON\$1CONNECT \$1API\$1GATEWAY \$1CHIME\$1MEETINGS \$1CHIME\$1VOICECONNECTOR \$1CLOUD9 \$1CLOUDFRONT \$1CODEBUILD \$1DYNAMODB \$1EBS \$1EC2 \$1EC2\$1INSTANCE\$1CONNECT \$1GLOBALACCELERATOR \$1KINESIS\$1VIDEO\$1STREAMS \$1ROUTE53 \$1ROUTE53\$1HEALTHCHECKS \$1ROUTE53\$1HEALTHCHECKS\$1PUBLISHING \$1ROUTE53\$1RESOLVER \$1S3 \$1WORKSPACES\$1GATEWAYS。 **Parquet データ型:** STRING  | 5 | 
| pkt-dst-aws-service | 送信先 IP アドレスが AWS サービスのものである場合、 dstaddrフィールドの IP アドレス範囲のサブセットの名前。可能な値の一覧については、pkt-src-aws-service フィールドをご参照ください。Parquet データ型: STRING | 5 | 

## フローログの使用の管理
<a name="controlling-use-of-flow-logs"></a>

デフォルトでは、 ユーザーにはフローログを使用するためのアクセス許可がありません。フローログを作成、説明、削除するアクセス権限をユーザーに付与するユーザーポリシーを作成できます。詳細については、*Amazon EC2 API リファレンス*の「[IAM ユーザーに対する Amazon EC2 リソースに対するアクセス許可の付与](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html)」を参照してください。

フローログを作成、説明、削除する完全なアクセス許可をユーザーに付与するポリシー例を次に示します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteFlowLogs",
        "ec2:CreateFlowLogs",
        "ec2:DescribeFlowLogs"
      ],
      "Resource": "*"
    }
  ]
}
```

------

発行先が CloudWatch Logs であるか Amazon S3 であるかにより、追加の IAM ロールとアクセス許可の設定が必要になります。詳細については、「[AWS Amazon CloudWatch Logs のトランジットゲートウェイフローログレコード](flow-logs-cwl.md)」および「[AWS Amazon S3 の Transit Gateway フローログレコード](flow-logs-s3.md)」を参照してください。

## Transit Gateway Flow Logs の料金
<a name="flow-logs-tgw-pricing"></a>

Transit Gateway フローログを発行すると、提供されたログに対するデータインジェスト料金とアーカイブ料金が適用されます。提供されたログの発行に伴う料金の詳細については、「[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)」を開き、**[有料利用枠]** で **[ログ]** を選択して、**[提供されたログ]** を見つけます。

# AWS Transit Gateway フローログの IAM ロールを作成または更新する
<a name="create-flow-logs-role"></a>

既存のロールを更新するか、次の手順を使用して、 AWS Identity and Access Management コンソールを使用してフローログで使用する新しいロールを作成できます。

**フローログの IAM ロールを作成するには**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. ナビゲーションペインで** [ロール]**、**[ロールの作成]** の順に選択します。

1. **[信頼されたエンティティのタイプの選択]** で、[**AWS のサービス**] を選択します。**[ユースケース]** で、**[EC2]** を選択します。**[次へ]** をクリックします。

1. **[アクセス権限を追加]** ページで、**[次へ: レビュー]** を選択し、オプションでタグを追加します。[**次へ**] を選択します。

1. 名前、確認、作成ページで、ロールの名前を入力し、オプションで **[説明]** を入力します。[**ロールの作成**] を選択してください。

1. ロールの名前を選択します。**[アクセス許可]** で **[インラインポリシーの作成]** を選択してから、**[JSON]** タブを選択します。

1. 「[CloudWatch Logs へのフローログ発行のための IAM ロール](flow-logs-cwl.md#flow-logs-iam)」から最初のポリシーをコピーして、ウィンドウに貼り付けます。**[ポリシーの確認]** を選択します。

1. ポリシーの名前を入力し、**[ポリシーの作成]** を選択します。

1. ロールの名前を選択します。**[信頼関係]** で、**[信頼関係の編集]** を選択します。既存のポリシードキュメントで、サービスを `ec2.amazonaws.com` から `vpc-flow-logs.amazonaws.com` に変更します。**[信頼ポリシーの更新]** を選択します。

1. **[概要]** ページで、ロールの ARN を書き留めます。フローログを作成するときに、この ARN が必要になります。

# AWS Amazon CloudWatch Logs のトランジットゲートウェイフローログレコード
<a name="flow-logs-cwl"></a>

フローログはフローログデータを直接 Amazon CloudWatch に発行できます。

フローログデータは、CloudWatch Logs に対して発行されるときはロググループに発行され、各 Transit Gateway にはロググループに一意のログストリームがあります。ログストリームにはフローログレコードが含まれます。同じロググループにデータを公開する複数のフローログを作成できます。同じ Transit Gateway が同じロググループの 1 つまたは複数のフローログに存在する場合、1 つの組み合わされたログストリームがあります。1 つのフローログで、拒否されたトラフィックをキャプチャし、別のフローログで、許可されたトラフィックをキャプチャするよう指定した場合、組み合わされたログストリームですべてのトラフィックがキャプチャされます。

フローログを CloudWatch Logs に発行すると、提供されたログに対するデータの取り込み料金とアーカイブ料金が適用されます。詳細については、「[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)」を参照してください。

CloudWatch Logs では、**[timestamp]** フィールドはフローログレコードでキャプチャされた開始時刻に対応します。**[ingestionTime]** フィールドは、CloudWatch Logs によってフローログレコードが受信された日時を示します。タイムスタンプは、フローログレコードでキャプチャされた終了時刻より後です。

CloudWatch Logs の詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「[CloudWatch Logs に送信されたログ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-CWL)」を参照してください。

**Topics**
+ [CloudWatch Logs へのフローログ発行のための IAM ロール](#flow-logs-iam)
+ [IAM ユーザーがロールを渡すためのアクセス許可](#flow-logs-iam-user)
+ [CloudWatch Logs に発行するフローログの作成](flow-logs-cwl-create-flow-log.md)
+ [フローログレコードを表示する](view-flow-log-records.md)
+ [フローログレコードの処理](process-records-cwl.md)

## CloudWatch Logs へのフローログ発行のための IAM ロール
<a name="flow-logs-iam"></a>

フローログに関連付けられた IAM ロールには、CloudWatch Logs の指定されたロググループにフローログを発行するために十分なアクセス許可が必要です。IAM ロールは に属している必要があります AWS アカウント。

IAM ロールにアタッチされた IAM ポリシーには、少なくとも以下のアクセス許可が含まれている必要があります。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams"
      ],
      "Resource": "*"
    }
  ]
}
```

------

フローログサービスがロールを引き受けることができる信頼関係がロールにあることも確認します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "vpc-flow-logs.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

[Confused Deputy Problem (混乱した使節の問題)](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) から自分を守るために、`aws:SourceAccount` および `aws:SourceArn` の条件キーを使用することをお勧めします。例えば、前述の信頼ポリシーに次の条件ブロックを追加できます。ソースアカウントはフローログの所有者であり、ソース ARN はフローログ ARN です。フローログ ID が不明な場合は、ARN の不明部分をワイルドカード (\$1) に置き換え、フローログ作成後にポリシーを更新できます。

```
"Condition": {
    "StringEquals": {
        "aws:SourceAccount": "account_id"
    },
    "ArnLike": {
        "aws:SourceArn": "arn:aws:ec2:region:account_id:vpc-flow-log/flow-log-id"
    }
}
```

## IAM ユーザーがロールを渡すためのアクセス許可
<a name="flow-logs-iam-user"></a>

フローログに関連付けられた IAM ロール用に `iam:PassRole` アクションを使用するアクセス許可もユーザーに必要です。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/flow-log-role-name"
        }
    ]
}
```

------

# が に発行する AWS Transit Gateway フローログレコードを作成する Amazon CloudWatch Logs
<a name="flow-logs-cwl-create-flow-log"></a>

Transit Gateway のフローログを作成できます。これらのステップを IAM ユーザーとして実行する場合は、`iam:PassRole` アクションを使用するアクセス許可があることを確認してください。詳細については、「[IAM ユーザーがロールを渡すためのアクセス許可](flow-logs-cwl.md#flow-logs-iam-user)」を参照してください。

Amazon CloudWatch AWS フローログを作成できます。

**コンソールを使用して Transit Gateway フローログを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) で Amazon VPC コンソールを開きます。

1. ナビゲーションペインで、**[Transit Gateway]** を選択します。

1. 1 つまたは複数の Transit Gateway のチェックボックスを選択し、**[アクション]**、**[フローログの作成]** の順に選択します。

1. **[送信先]** で、**[CloudWatch ログへの送信]** を選択します。

1. **[送信先ロググループ]** で、現在の送信先ロググループの名前を選択します。
**注記**  
送信先ロググループがまだ存在しない場合は、このフィールドに新しい名前を入力すると、新しい送信先ロググループが作成されます。

1. **[IAM ロール]** で、ログを CloudWatch Logs に発行できるアクセス許可があるロールの名前を指定します。

1. **[Lログレコードの形式]** で、フローログレコードの形式を選択します。
   + デフォルトの形式を使用するには、**[AWS のデフォルト形式]** を選択します。
   + カスタム形式を使用するには、**[カスタム形式] **を選択し、**[ログ形式]** からフィールドを選択します。

1. (オプション) フローログにタグを適用するには、**[新規タグを追加]** を選択します。

1. **[フローログの作成] **を選択します。

**コマンドラインを使用してフローログを作成するには**

以下のいずれかのコマンドを使用します。
+ [create-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-flow-logs.html) (AWS CLI)
+ [New-EC2FlowLog](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2FlowLog.html) (AWS Tools for Windows PowerShell)

次の AWS CLI 例では、トランジットゲートウェイ情報をキャプチャするフローログを作成します。フローログは、IAM ロール `my-flow-logs` を使用し、アカウント 123456789101 内で、`publishFlowLogs` と呼ばれる CloudWatch Logs 内のロググループに配信されます。

```
aws ec2 create-flow-logs --resource-type TransitGateway --resource-ids tgw-1a2b3c4d --log-group-name my-flow-logs --deliver-logs-permission-arn arn:aws:iam::123456789101:role/publishFlowLogs 
```

# Amazon CloudWatch で AWS Transit Gateway フローログレコードを表示する
<a name="view-flow-log-records"></a>

選択した送信先タイプに応じて、CloudWatch Logs コンソールまたは Amazon S3 コンソールを使用して、フローログレコードを表示できます。フローログを作成してからコンソールに表示されるまでに、数分かかる場合があります。

**CloudWatch Logs に対して発行されたフローログレコードを表示するには**

1. CloudWatch コンソール ([https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)) を開きます。

1. ナビゲーションペインで、**[ログ] **を選択し、フローログを含むロググループを選択します。各 Transit Gateway のログストリームのリストが表示されます。

1.  フローログレコードを表示する Transit Gateway の ID を含むログストリームを選択します。詳細については、「[Transit Gateway Flow Log のレコード](tgw-flow-logs.md#flow-log-records)」を参照してください。

# Amazon CloudWatch Logs で AWS Transit Gateway フローログレコードを処理する
<a name="process-records-cwl"></a>

CloudWatch Logs で収集された他のログイベントのように、フローログレコードを操作できます。モニタリングログデータとメトリックフィルターの詳細については、「Amazon CloudWatch ユーザーガイド」の「[フィルターを使用したログイベントからのメトリクスの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)」を参照してください。

## 例: フローログの CloudWatch メトリクスフィルターとアラームの作成
<a name="flow-logs-cw-alarm-example"></a>

この例では、`tgw-123abc456bca` のフローログがあります。1 時間以内の期間に TCP ポート 22 (SSH) 経由でインスタンスに接続しようとする試みが 10 個以上拒否された場合に、アラームを作成するとします。最初に、アラームを作成するトラフィックのパターンと一致するメトリクスフィルターを作成する必要があります。次に、メトリクスフィルターのアラームを作成できます。

**拒否された SSH トラフィックのメトリクスフィルターを作成し、フィルタのアラームを作成するには**

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

1. ナビゲーションペインで、**[ログ]**、**[ロググループ]** の順に選択します。

1. ロググループのチェックボックスをオンにしてから、**[アクション]**、**[メトリクスフィルターの作成]** を選択します。

1. **[フィルターパターン]** で、次のように入力します。

   ```
   [version, resource_type, account_id,tgw_id="tgw-123abc456bca”, tgw_attachment_id, tgw_src_vpc_account_id, tgw_dst_vpc_account_id, tgw_src_vpc_id, tgw_dst_vpc_id, tgw_src_subnet_id, tgw_dst_subnet_id, tgw_src_eni, tgw_dst_eni, tgw_src_az_id, tgw_dst_az_id, tgw_pair_attachment_id, srcaddr= "10.0.0.1", dstaddr, srcport=“80”, dstport, protocol=“6”, packets, bytes,start,end, log_status, type,packets_lost_no_route, packets_lost_blackhole, packets_lost_mtu_exceeded, packets_lost_ttl_expired, tcp_flags,region, flow_direction, pkt_src_aws_service, pkt_dst_aws_service]
   ```

1. **[テストするログデータの選択]** で、Transit Gateway のログストリームを選択します。(オプション) フィルターパターンと一致するログデータの行を表示するには、**[テストパターン]** を選択します。準備ができたら、**[次へ]** を選択します。

1. フィルター名、メトリクス名前空間、およびメトリック名を入力します。メトリクス値の設定を「**1**」にします。完了したら、**[次へ]** を選択し、その後 **[メトリクスフィルターの作成]** を選択します。

1. ナビゲーションペインで、**[アラーム]**、**[すべてのアラーム]** の順に選択します。

1. **[アラームの作成]** を選択します。

1. 作成したメトリクスフィルターの名前空間を選択します。

   新しいメトリクスがコンソールに表示されるまでに数分かかる場合があります。

1. 作成したメトリクス名を選択し、その後 **[メトリクスの選択]** を選択します。

1. アラームを以下のように設定して、**[次へ]** をクリックします。
   + **[統計]** で、**[合計]** を選択します。これにより、指定された期間のデータポイントの総数をキャプチャしていることを確認できます。
   + **[期間]** で、**[1 時間]** を選択します。
   + **[随時]** で、**[以上]** を選択し、しきい値は「**10**」と入力します。
   + **[追加設定]**、**[警告を出すデータポイント数]** はデフォルトの「**1**」のままにしておきます。

1. **[通知]** で、既存の SNS トピックを選択するか、**[新しいトピックを作成]** を選択して新しいトピックを作成します。[**次へ**] を選択します。

1. 次のページで、アラームの名前と説明を入力し、**[次へ]** を選択します。

1. アラームの設定が終わったら、**[アラームを作成]** を選択します。

# AWS Amazon S3 の Transit Gateway フローログレコード
<a name="flow-logs-s3"></a>

フローログはフローログデータを Amazon S3 に発行できます。

Amazon S3 に発行した場合、フローログデータは、指定する既存の Amazon S3 バケットに発行されます。モニタリングされるすべての Transit Gateway のフローログレコードが、バケットに保存された一連のログファイルオブジェクトに発行されます。

データ取り込みとアーカイブ Amazon CloudWatch の料金は、フローログを Amazon S3 に発行するときに、 によって提供されたログに適用されます。CloudWatch のVended Logs の料金情報の詳細については、「[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)」を参照してください。**[ログ]**を選択すると、**[Vended Logs]** の下に価格が表示されます。

フローログに使用する Amazon S3 バケットの作成方法については、「Amazon S3 ユーザーガイド」の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。

複数のアカウントログの詳細については、「[AWS ソリューションライブラリの中央ロギング](https://aws.amazon.com/solutions/implementations/centralized-logging/)」を参照してください。

CloudWatch Logs の詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「[Amazon S3 に送信されたログ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3)」を参照してください。

**Topics**
+ [フローログファイル](#flow-logs-s3-path)
+ [フローログを Amazon S3 にパブリッシュする IAM プリンシパルの IAM ポリシー](#flow-logs-s3-iam)
+ [フローログのための Amazon S3 バケットのアクセス許可](#flow-logs-s3-permissions)
+ [SSE-KMS に使用する必須のキーポリシー](#flow-logs-s3-cmk-policy)
+ [Amazon S3 ログファイルのアクセス許可](#flow-logs-file-permissions)
+ [ソースアカウントロールの作成](flowlog-s3-create-source.md)
+ [Amazon S3 に発行するフローログの作成](flowlog-s3-create.md)
+ [フローログレコードを表示する](view-flow-log-records-s3.md)
+ [Amazon S3 で処理された AWS Transit Gateway フローログレコード](#process-records-s3)

## フローログファイル
<a name="flow-logs-s3-path"></a>

VPC Flow Logs は、フローログレコードを収集し、ログファイルに統合して、5 分間隔でログファイルを Amazon S3 バケットに発行する機能です。各ログファイルには、前の 5 分間に記録された IP トラフィックのフローログレコードが含まれています。

ログファイルの最大ファイルサイズは 75 MB です。ログファイルが 5 分以内にファイルサイズの上限に達した場合、フローログはフローログレコードの追加を停止します。次に、フローログを Amazon S3 バケットに発行してから、新しいログファイルを作成します。

Amazon S3 では、フローログファイルの **[最終更新日時]** フィールドに、ファイルが Amazon S3 バケットにアップロードされた日時が表示されます。これは、ファイル名のタイムスタンプより後で、Amazon S3 バケットにファイルをアップロードするのにかかった時間によって異なります。

**ログファイル形式**

ログファイルに指定できる形式は次のとおりです。各ファイルは 1 つの Gzip ファイルに圧縮されます。
+ **[Text]** - プレーンテキスト。これがデフォルトの形式です。
+ **[Parquet]** - Apache Parquet は列指向データ形式です。Parquet 形式のデータに対するクエリは、プレーンテキストのデータに対するクエリに比べて 10～100 倍高速です。Gzip 圧縮を使用した Parquet 形式のデータは、Gzip 圧縮を使用したプレーンテキストよりもストレージスペースが 20% 少なくなります。

**ログファイルオプション**

オプションで、次のオプションを指定できます。
+ **[Hive-compatible S3 prefixes]** - Hive 互換ツールにパーティションをインポートする代わりに、Hive 互換プレフィックスを有効にします。クエリを実行する前に、[**MSCK REPAIR TABLE**] コマンドを使用します。
+ **[Hourly partitions]** - 大量のログがあり、通常は特定の時間にクエリをターゲットにしている場合、ログを時間単位で分割することで、より高速な結果が得られ、クエリコストを節約できます。

**ログファイル S3 バケット構造**  
ログファイルでは、フローログの ID、リージョン、作成日、および送信先オプションに基づくフォルダ構造を使用して、指定された Amazon S3 バケットに保存されます。

デフォルトでは、ファイルは次の場所に配信されます。

```
bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/
```

Hive 互換の S3 プレフィックスを有効にすると、ファイルは次の場所に配信されます。

```
bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/
```

時間単位のパーティションを有効にすると、ファイルは次の場所に配信されます。

```
bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/hour/
```

Hive 互換パーティションを有効にして 1 時間あたりのフローログをパーティション化すると、ファイルは次の場所に配信されます。

```
bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/hour=hour/
```

**ログファイル名**  
ログファイルのファイル名は、フローログ ID、リージョン、および作成日時に基づきます。ファイル名は、次の形式です。

```
aws_account_id_vpcflowlogs_region_flow_log_id_YYYYMMDDTHHmmZ_hash.log.gz
```

以下は、us-east-1 リージョンで June 20, 2018 の 16:20 UTC に、リソースに対して AWS アカウント 「123456789012」で作成されたフローログのログファイルの例です。ファイルには、終了時刻が 16:20:00 から 16:24:59 の間のフローログレコードが含まれます。

```
123456789012_vpcflowlogs_us-east-1_fl-1234abcd_20180620T1620Z_fe123456.log.gz
```

## フローログを Amazon S3 にパブリッシュする IAM プリンシパルの IAM ポリシー
<a name="flow-logs-s3-iam"></a>

フローログを作成する IAM プリンシパルには、フローログを宛先の Amazon S3 バケットに公開するために、以下のアクセス許可が付与されている必要があります。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogDelivery",
        "logs:DeleteLogDelivery"
        ],
      "Resource": "*"
    }
  ]
}
```

------

## フローログのための Amazon S3 バケットのアクセス許可
<a name="flow-logs-s3-permissions"></a>

デフォルトでは、Amazon S3 バケットとそれに含まれているオブジェクトはプライベートです。バケット所有者のみが、そのバケットとそれに含まれているオブジェクトにアクセスできます。ただし、バケット所有者は、アクセスポリシーを記述することで他のリソースおよびユーザーにアクセス権限を付与することができます。

フローログを作成するユーザーがバケットを所有し、そのバケットに `PutBucketPolicy` および `GetBucketPolicy` 許可を持っている場合、次のポリシーが自動的にそのバケットにアタッチされます。この新しい自動生成されたポリシーは、元のポリシーに追加されます。

それ以外の場合は、バケット所有者が、フローログ作成者の AWS アカウント ID を指定して、このポリシーをバケットに追加しなければ、フローログの作成は失敗します。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「[バケットポリシー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)」を参照してください。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::bucket_name/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AWSLogDeliveryCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": [
                "s3:GetBucketAcl"
            ],
            "Resource": "arn:aws:s3:::bucket_name",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

*my-s3-arn* に指定する ARN は、Hive と互換性のある S3 のプレフィックスを使用するかどうかによって異なります。
+ デフォルトのプレフィックス

  ```
  arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*
  ```
+ Hive 互換の S3 プレフィックス

  ```
  arn:aws:s3:::bucket_name/optional_folder/AWSLogs/aws-account-id=account_id/*
  ```

ベストプラクティスとして、これらのアクセス許可を AWS アカウント ARNsではなくログ配信サービスプリンシパルに付与することをお勧めします。また、`aws:SourceAccount` および `aws:SourceArn` 条件キーを使用して、[混乱した使節の問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)から保護することもベストプラクティスです。ソースアカウントはフローログの所有者であり、ソース ARN は、ログサービスのワイルドカード (\$1) ARN です。

## SSE-KMS に使用する必須のキーポリシー
<a name="flow-logs-s3-cmk-policy"></a>

Amazon S3 バケット内のデータを保護するには、Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE-S3)、または に格納された KMS キーを使用したサーバー側の暗号化 (SSE-KMS) のいずれかを有効にします。詳細については、「Amazon S3 ユーザーガイド」の「[サーバー側の暗号化を使用したデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)」をご参照ください。

SSE-KMS では、 AWS マネージドキーまたはカスタマーマネージドキーを使用できます。 AWS マネージドキーでは、クロスアカウント配信を使用できません。フローログはログ配信アカウントから配信されるため、クロスアカウント配信のアクセス権を付与する必要があります。S3 バケットへのクロスアカウントアクセス権を付与するには、カスタマーマネージドキーを使用し、バケット暗号化を有効にするときに、カスタマーマネージドキーの Amazon リソースネーム (ARN) を指定します。詳細については、「Amazon S3 ユーザーガイド」の「[AWS KMSによるサーバー側の暗号化の指定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)」をご参照ください。

カスタマーマネージドキーで SSE-KMS を使用する場合、VPC Flow Logs が S3 バケットに書き込めるように、キーのキーポリシー (S3 バケットのバケットポリシーではありません) に以下を追加する必要があります。

**注記**  
S3 バケットキーを使用すると、バケットレベルのキーを使用して Encrypt、GenerateDataKey、および Decrypt オペレーション AWS KMS の へのリクエストを減らすことで、 AWS Key Management Service (AWS KMS) リクエストのコストを節約できます。設計上、このバケットレベルのキーを利用する後続のリクエストでは、 AWS KMS API リクエストは発生せず、 AWS KMS キーポリシーに対するアクセスも検証されません。

```
{
    "Sid": "Allow Transit Gateway Flow Logs to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": [
            "delivery.logs.amazonaws.com"
        ]
    },
   "Action": [
       "kms:Encrypt",
       "kms:Decrypt",
       "kms:ReEncrypt*",
       "kms:GenerateDataKey*",
       "kms:DescribeKey"
    ],
    "Resource": "*"
}
```

## Amazon S3 ログファイルのアクセス許可
<a name="flow-logs-file-permissions"></a>

Amazon S3 は、必須のバケットポリシーに加えて、アクセスコントロールリスト (ACL) を使用して、フローログによって作成されたログファイルへのアクセスを管理します。デフォルトでは、バケット所有者が各ログファイルで `FULL_CONTROL` 権限を持ちます。ログ配信の所有者 (バケット所有者とは異なる場合) は、許可を持ちません。ログ配信アカウントには、`READ` および `WRITE` 許可があります。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「[アクセスコントロールリスト (ACL) の概要](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)」を参照してください。

# Amazon S3 の AWS Transit Gateway Flow Logs ソースアカウントロールを作成する
<a name="flowlog-s3-create-source"></a>

ソースアカウントから、 AWS Identity and Access Management コンソールでソースロールを作成します。

**ソースアカウントロールを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで、**ポリシー** を選択してください。

1. **[ポリシーの作成]** を選択します。

1. [ポリシーの作成] ページで、次の操作を行います。

   1. **[JSON]** を選択します。

   1. このウィンドウのコンテンツを、このセクションの冒頭にあるアクセス許可ポリシーに置き換えてください。

   1. **[次へ: タグ]**、**[次へ: 確認]** の順に選択します。

   1. ポリシーの名前と説明 (省略可能) を入力し、**[ポリシーの作成]** を選択します。

1. ナビゲーションペインで **[ロール] **を選択します。

1. [**ロールの作成**] を選択してください。

1. **[信頼されたエンティティのタイプ]** には、**[カスタム信頼ポリシー]** を選択します。**[カスタム信頼ポリシー]** で、`"Principal": {},` を次のように置き換え、ログ配信サービスを指定します。[**次へ**] を選択します。

   ```
   "Principal": {
      "Service": "delivery.logs.amazonaws.com"
   },
   ```

1. **[Add permissions]** (アクセス許可の追加) ページで、この手順で先ほど作成したポリシーの横にあるチェックボックスを選択し、**[Next]** (次へ) を選択します。

1. ロールの名前を入力し、オプションで説明を入力します。

1. [**ロールの作成**] を選択してください。

# Amazon S3 に発行する AWS Transit Gateway フローログレコードを作成する
<a name="flowlog-s3-create"></a>

Amazon S3 バケットを作成して設定した後は、Transit Gateway のフローログを作成できます。Amazon VPC コンソールまたは AWS CLI を使用して、Amazon S3 フローログを作成できます。

**コンソールを使用して Amazon S3 に発行される Transit Gateway フローログを作成するには**

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

1. ナビゲーションペインで、**[Transit Gateways]**、**[Transit Gateway アタッチメント]** の順に選択します。

1. 1 つまたは複数の Transit Gateway または Transit Gateway アタッチメントのチェックボックスを選択します。

1. **[アクション]**、**[フローログの作成]** を選択します。

1. フローログ設定を構成します。詳細については、「[フローログ設定を構成するには](#configure-flow-log)」を参照してください。<a name="configure-flow-log"></a>

**コンソールを使用してフローログ設定を構成するには**

1. **[送信先] **で、**[S3 バケットへの送信] **を選択します。

1. **[S3 バケット ARN]** で、既存の Amazon S3 バケットの Amazon リソースネーム (ARN) を指定します。オプションで、サブフォルダを含めることができます。例えば、`my-logs` というバケットで `my-bucket` というサブフォルダを指定するには、次の ARN を使用します。

   `arn:aws::s3:::my-bucket/my-logs/`

   `AWSLogs` は予約語であるため、バケットでサブフォルダ名として使用することはできません。

   バケットを所有している場合は、リソースポリシーが自動的に作成され、バケットにアタッチされます。詳細については、「[フローログのための Amazon S3 バケットのアクセス許可](flow-logs-s3.md#flow-logs-s3-permissions)」を参照してください。

1. **[ログレコード形式]** で、フローログレコードの形式を指定します。
   + デフォルトのフローログレコード形式を使用するには、**[AWS のデフォルト形式]** を選択します。
   + カスタム形式を作成するには、[**カスタム形式**] を選択します。**[ログの形式]** で、フローログレコードに含めるフィールドを選択します。

1. **[ログファイル形式]** で、ログファイルの形式を指定します。
   + **[Text]** - プレーンテキスト。これがデフォルトの形式です。
   + **[Parquet]** - Apache Parquet は列指向データ形式です。Parquet 形式のデータに対するクエリは、プレーンテキストのデータに対するクエリに比べて 10～100 倍高速です。Gzip 圧縮を使用した Parquet 形式のデータは、Gzip 圧縮を使用したプレーンテキストよりもストレージスペースが 20% 少なくなります。

1. (オプション) Hive 互換の S3 プレフィックスを使用するには、[**Hive-compatible S3 prefix**]、[**有効化**] を選択します。

1. (オプション) 1 時間あたりのフローログを分割するには、[**Every 1 hour (60 mins)**] を選択します。

1. (オプション) フローログにタグを追加するには、[**新しいタグを追加**] を選択し、タグのキーと値を指定します。

1. **[フローログの作成]** を選択します。

**コマンドラインツールを使用して Amazon S3 に発行されるフローログを作成するには**

以下のいずれかのコマンドを使用します。
+ [create-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-flow-logs.html) (AWS CLI)
+ [New-EC2FlowLog](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2FlowLog.html) (AWS Tools for Windows PowerShell)

次の AWS CLI 例では、VPC のすべてのトランジットゲートウェイトラフィックをキャプチャ`tgw-00112233344556677`するフローログを作成し、フローログを という名前の Amazon S3 バケットに配信します`flow-log-bucket`。`--log-format` パラメータにより、フローログレコードのカスタム形式が指定されます。

```
aws ec2 create-flow-logs --resource-type TransitGateway --resource-ids tgw-00112233344556677 --log-destination-type s3 --log-destination arn:aws:s3:::flow-log-bucket/my-custom-flow-logs/'
```

# Amazon S3 で AWS Transit Gateway フローログレコードを表示する
<a name="view-flow-log-records-s3"></a>

**Amazon S3 に対して発行されたフローログレコードを表示するには**

1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. **[バケット名]** で、フローログを発行するバケットを選択します。

1. **[名前]** では、ログファイルの横にあるチェックボックスを選択します。オブジェクトの概要パネルで、**[ダウンロード]** を選択します。

## Amazon S3 で処理された AWS Transit Gateway フローログレコード
<a name="process-records-s3"></a>

ログファイルは圧縮されます。Amazon S3 コンソールを使用してログファイルを開くと、ファイルは解凍され、フローログレコードが表示されます。ファイルをダウンロードする場合、フローログレコードを表示するには解凍する必要があります。

# AWS Amazon Data Firehose の Transit Gateway、Flow Logs レコード
<a name="flow-logs-kinesis"></a>

**Topics**
+ [クロスアカウント配信のための IAM ロール](#flow-logs-kinesis-iam)
+ [ソースアカウントロールの作成](flowlog-fh-create-source.md)
+ [送信先アカウントロールを作成する](flowlog-fh-create-destination.md)
+ [Firehose に発行するフローログの作成](flow-logs-kinesis-create.md)

フローログはフローログデータを直接 Firehose に発行できます。フローログの発行先は、リソースモニターと同じアカウント、または別のアカウントを選択できます。

**前提条件**

Firehose に発行すると、フローログデータは Firehose 配信ストリームにプレーンテキスト形式で発行されます。最初に、Firehose の配信ストリームを作成しておく必要があります。配信ストリーム作成の詳細については、「Amazon Data Firehose デベロッパーガイド」の「[Amazon Data Firehose 配信ストリームの作成](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)」を参照してください。

**料金**

標準の取り込み料金と配信料金が適用されます。詳細については、「[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)」を開き、**[ログ]** を選択して **[提供されたログ]** を参照してください。

## クロスアカウント配信のための IAM ロール
<a name="flow-logs-kinesis-iam"></a>

Kinesis Data Firehose に発行する場合、監視するリソースと同じアカウント (ソースアカウント) または別のアカウント (送信先アカウント) にある配信ストリームを選択できます。Firehose へのフローログのクロスアカウント配信を有効にするには、ソースアカウントと送信先アカウントに IAM ロールをそれぞれ作成する必要があります。

**Topics**
+ [ソースアカウントロール](#flow-logs-kinesis-iam-role-source)
+ [送信先アカウントロール](#flow-logs-kinesis-iam-role-destination)

### ソースアカウントロール
<a name="flow-logs-kinesis-iam-role-source"></a>

ソースアカウントで、次のアクセス許可を付与するロールを作成します。この例のロールの名前は `mySourceRole` ですが、このロールには別の名前を選択できます。最後のステートメントにより、送信先アカウントのロールがこのロールを引き受けることができるようになります。条件ステートメントにより、このロールは指定されたリソースを監視する場合に限り、ログ配信サービスだけに渡されます。ポリシーを作成するときに、監視する VPC、ネットワークインターフェイス、またはサブネットを条件キー `iam:AssociatedResourceARN` で指定します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/mySourceRole",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "delivery.logs.amazonaws.com"
                },
                "StringLike": {
                    "iam:AssociatedResourceARN": [
                        "arn:aws:ec2:us-east-1:source-account:transit-gateway/tgw-0fb8421e2da853bf"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:ListLogDeliveries",
                "logs:GetLogDelivery"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::111122223333:role/AWSLogDeliveryFirehoseCrossAccountRole"
        }
    ]
}
```

------

このロールに以下の信頼ポリシーがあることを確認します。これにより、ログ配信サービスがロールを引き受けることができます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

### 送信先アカウントロール
<a name="flow-logs-kinesis-iam-role-destination"></a>

送信先アカウントで、**AWSLogDeliveryFirehoseCrossAccountRole** で始まる名前のロールを作成します。このロールには、以下のアクセス許可が必要です。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "iam:CreateServiceLinkedRole",
          "firehose:TagDeliveryStream"
      ],
      "Resource": "*"
    }
  ]
}
```

------

このロールに次の信頼ポリシーがあることを確認します。これにより、ソースアカウントで作成したロールがこのロールを引き受けることができます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/mySourceRole"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

# Amazon Data Firehose の AWS Transit Gateway Flow Logs ソースアカウントロールを作成する
<a name="flowlog-fh-create-source"></a>

ソースアカウントから、 AWS Identity and Access Management コンソールでソースロールを作成します。

**ソースアカウントロールを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで、**ポリシー** を選択してください。

1. **[ポリシーの作成]** を選択します。

1. [ポリシーの作成] ページで、次の操作を行います。

   1. **[JSON]** を選択します。

   1. このウィンドウのコンテンツを、このセクションの冒頭にあるアクセス許可ポリシーに置き換えてください。

   1. **[次へ: タグ]**、**[次へ: 確認]** の順に選択します。

   1. ポリシーの名前と説明 (省略可能) を入力し、**[ポリシーの作成]** を選択します。

1. ナビゲーションペインで **[ロール] **を選択します。

1. [**ロールの作成**] を選択してください。

1. **[信頼されたエンティティのタイプ]** には、**[カスタム信頼ポリシー]** を選択します。**[カスタム信頼ポリシー]** で、`"Principal": {},` を次のように置き換え、ログ配信サービスを指定します。[**次へ**] を選択します。

   ```
   "Principal": {
      "Service": "delivery.logs.amazonaws.com"
   },
   ```

1. **[Add permissions]** (アクセス許可の追加) ページで、この手順で先ほど作成したポリシーの横にあるチェックボックスを選択し、**[Next]** (次へ) を選択します。

1. ロールの名前を入力し、オプションで説明を入力します。

1. [**ロールの作成**] を選択してください。

# Amazon Data Firehose の AWS Transit Gateway Flow Logs 送信先アカウントロールを作成する
<a name="flowlog-fh-create-destination"></a>

送信先アカウントから、 AWS Identity and Access Management コンソールで送信先ロールを作成します。

**送信先アカウントロールを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで、**ポリシー** を選択してください。

1. **[ポリシーの作成]** を選択します。

1. [ポリシーの作成] ページで、次の操作を行います。

   1. **[JSON]** を選択します。

   1. このウィンドウのコンテンツを、このセクションの冒頭にあるアクセス許可ポリシーに置き換えてください。

   1. **[次へ: タグ]**、**[次へ: 確認]** の順に選択します。

   1. **AWSLogDeliveryFirehoseCrossAccountRole** で始まるポリシーの名前を入力し、**[ポリシーの作成]** を選択します。

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. [**ロールの作成**] を選択してください。

1. **[信頼されたエンティティのタイプ]** には、**[カスタム信頼ポリシー]** を選択します。**[カスタム信頼ポリシー]** で、`"Principal": {},` を次のように置き換え、ログ配信サービスを指定します。[**次へ**] を選択します。

   ```
   "Principal": {
      "AWS": "arn:aws:iam::source-account:role/mySourceRole"
   },
   ```

1. **[Add permissions]** (アクセス許可の追加) ページで、この手順で先ほど作成したポリシーの横にあるチェックボックスを選択し、**[Next]** (次へ) を選択します。

1. ロールの名前を入力し、オプションで説明を入力します。

1. [**ロールの作成**] を選択してください。

# Amazon Data Firehose に発行する AWS Transit Gateway フローログレコードを作成する
<a name="flow-logs-kinesis-create"></a>

Amazon Data Firehose に公開する Transit Gateway フローログを作成します。フローログを作成する前に、クロスアカウント配信のソース IAM アカウントロールと宛先 IAM アカウントロールを設定し、Firehose 配信ストリームを作成します。詳細については「[Amazon Data Firehose のフローログ](flow-logs-kinesis.md)」を参照してください。Firehose フローログは、Amazon VPC コンソールまたは CLI AWS を使用して作成できます。

**コンソールを使用して Firehose に発行される Transit Gateway フローログを作成するには**

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

1. ナビゲーションペインで、**[Transit Gateways]**、**[Transit Gateway アタッチメント]** の順に選択します。

1. 1 つまたは複数の Transit Gateway または Transit Gateway アタッチメントのチェックボックスを選択します。

1. **[アクション]**、**[フローログの作成]** を選択します。

1. **[送信先]** には、**[Firehose 配信システム]** への送信を選択します。

1. **[Firehose 配信ストリーム ARN]** には、フローログの発行先として作成した配信ストリームの ARN を選択します。

1. **[ログレコード形式]** で、フローログレコードの形式を指定します。
   + デフォルトのフローログレコード形式を使用するには、**[AWS のデフォルト形式]** を選択します。
   + カスタム形式を作成するには、[**カスタム形式**] を選択します。**[ログの形式]** で、フローログレコードに含めるフィールドを選択します。

1. (オプション) フローログにタグを追加するには、[**新しいタグを追加**] を選択し、タグのキーと値を指定します。

1. **[フローログの作成]** を選択します。

**コマンドラインツールを使用して Firehose に発行されるフローログを作成するには**

以下のいずれかのコマンドを使用します。
+ [create-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-flow-logs.html) (AWS CLI)
+ [New-EC2FlowLog](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2FlowLog.html) (AWS Tools for Windows PowerShell)

次の CLI AWS の例では、トランジットゲートウェイ情報をキャプチャし、指定された Firehose 配信ストリームにフローログを配信するフローログを作成します。

```
aws ec2 create-flow-logs \ 
                --resource-type TransitGateway \ 
                --resource-ids tgw-1a2b3c4d \ 
                --log-destination-type kinesis-data-firehose \
                --log-destination arn:aws:firehose:us-east-1:123456789012:deliverystream:flowlogs_stream
```

次の CLI AWS の例では、トランジットゲートウェイ情報をキャプチャし、フローログをソースアカウントとは異なる Firehose 配信ストリームに配信するフローログを作成します。

```
aws ec2 create-flow-logs  \
  --resource-type TransitGateway \
  --resource-ids gw-1a2b3c4d \
  --log-destination-type kinesis-data-firehose \
  --log-destination arn:aws:firehose:us-east-1:123456789012:deliverystream:flowlogs_stream \
  --deliver-logs-permission-arn arn:aws:iam::source-account:role/mySourceRole \ 
  --deliver-cross-account-role arn:aws:iam::destination-account:role/AWSLogDeliveryFirehoseCrossAccountRole
```

# APIs または CLI を使用した AWS Transit Gateway フローログの作成と管理
<a name="flow-logs-api-cli"></a>

このページで説明しているタスクは、コマンドラインを使用して実行できます。

[create-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-flow-logs.html) コマンドを使用する場合、次の制限が適用されます。
+ `--resource-ids` の最大制約は、`TransitGateway` または `TransitGatewayAttachment` リソースタイプが 25 です。
+ `--traffic-type` はデフォルトでは必須フィールドではありません。これを Transit Gateway リソースタイプに指定すると、エラーが返されます。この制限は Transit Gateway リソースタイプにのみ適用されます。
+ `--max-aggregation-interval` には、`60` のデフォルトの値があります。これは、Transit Gateway リソースタイプで唯一受け入れられる値です。他の値を渡そうとすると、エラーが返されます。この制限は Transit Gateway リソースタイプにのみ適用されます。
+ `--resource-type` で、`TransitGateway` と `TransitGatewayAttachment` の 2 つの新しいリソースタイプがサポートされています。
+ 含めるフィールドを設定しない場合、`--log-format` には Transit Gateway リソースタイプのすべてのログフィールドが含まれます。これは、Transit Gateway リソースタイプにのみ適用されます。

**フローログの作成**
+ [create-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-flow-logs.html) (AWS CLI)
+ [New-EC2FlowLog](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2FlowLog.html) (AWS Tools for Windows PowerShell)

**フローログの説明**
+ [describe-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-flow-logs.html) (AWS CLI)
+ [Get-EC2FlowLog](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2FlowLog.html) (AWS Tools for Windows PowerShell)

**フローログレコード（ログイベント）の表示**
+ [get-log-events](https://docs.aws.amazon.com/cli/latest/reference/logs/get-log-events.html) (AWS CLI)
+ [Get-CWLLogEvent](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-CWLLogEvent.html) (AWS Tools for Windows PowerShell)

**フローログの削除**
+ [delete-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-flow-logs.html) (AWS CLI)
+ [Remove-EC2FlowLog](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2FlowLog.html) (AWS Tools for Windows PowerShell)

# AWS Transit Gateway フローログレコードを表示する
<a name="view-flow-logs"></a>

Amazon VPC 経由で Transit Gateway フローログに関する情報を表示します。リソースを選択すると、そのリソースのすべてのフローログが表示されます。表示される情報には、フローログの ID、フローログの設定、およびフローログのステータスに関する情報が含まれます。

**Transit Gateway のフローログに関する情報を表示するには**

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

1. ナビゲーションペインで、**[Transit Gateways]**、**[Transit Gateway アタッチメント]** の順に選択します。

1. Transit Gateway または Transit Gateway アタッチメントを選択し、**[フローログの削除]** を選択します。フローログに関する情報がタブに表示されます。**[送信先タイプ]** 列は、フローログを発行する送信先を示します。

# AWS Transit Gateway フローログタグの管理
<a name="modify-tags-flow-logs"></a>

Amazon EC2 および Amazon VPC コンソールで、フローログのタグを追加または削除できます。

**Transit Gateway フローログのタグを追加または削除するには**

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

1. ナビゲーションペインで、**[Transit Gateways]**、**[Transit Gateway アタッチメント]** の順に選択します。

1. Transit Gateway または Transit Gateway アタッチメントを選択します。

1. 必要なフローログの **[タグの管理]** を選択します。

1. 新しいタグを追加するには、**[タグの作成]** を選択します。タグを削除するには、削除アイコンを選択します (x)。

1. **[保存]** を選択します。

# AWS Transit Gateway フローログレコードの検索
<a name="search-flow-log-records"></a>

CloudWatch Logs コンソールを使用して、CloudWatch Logs に発行されたフローログレコードを検索できます。[メトリクスフィルター](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)を使用すると、フローログレコードをフィルタリングできます。フローログレコードはスペースで区切られます。

**CloudWatch Logs コンソールを使用してフローログレコードを検索するには**

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

1. ナビゲーションペインで、**[ログ]**、**[ロググループ]** の順に選択します。

1. フローログを含むロググループを選択します。各 Transit Gateway のログストリームのリストが表示されます。

1. 検索する Transit Gateway がわかっている場合は、個々のログストリームを選択します。または、**[ロググループの検索]** を選択して、ロググループ全体を検索します。ロググループに多数の Transit Gateway がある場合、または選択した時間範囲によっては、この処理に時間がかかる場合があります。

1. **[イベントをフィルター] **で、次の文字列を入力します。これは、フローログレコードで [デフォルトの形式](tgw-flow-logs.md#flow-logs-default)が使用されていることを前提としています。

   ```
   [version, resource_type, account_id,tgw_id, tgw_attachment_id, tgw_src_vpc_account_id, tgw_dst_vpc_account_id, tgw_src_vpc_id, tgw_dst_vpc_id, tgw_src_subnet_id, tgw_dst_subnet_id, tgw_src_eni, tgw_dst_eni, tgw_src_az_id, tgw_dst_az_id, tgw_pair_attachment_id, srcaddr, dstaddr, srcport, dstport, protocol, packets, bytes,start,end, log_status, type,packets_lost_no_route, packets_lost_blackhole, packets_lost_mtu_exceeded, packets_lost_ttl_expired, tcp_flags,region, flow_direction, pkt_src_aws_service, pkt_dst_aws_service]
   ```

1. 必要に応じてフィールドの値を指定して、フィルターを変更します。次の例では、特定の送信元 IP アドレスでフィルタリングします。

   ```
   [version, resource_type, account_id,tgw_id, tgw_attachment_id, tgw_src_vpc_account_id, tgw_dst_vpc_account_id, tgw_src_vpc_id, tgw_dst_vpc_id, tgw_src_subnet_id, tgw_dst_subnet_id, tgw_src_eni, tgw_dst_eni, tgw_src_az_id, tgw_dst_az_id, tgw_pair_attachment_id, srcaddr= 10.0.0.1, dstaddr, srcport, dstport, protocol, packets, bytes,start,end, log_status, type,packets_lost_no_route, packets_lost_blackhole, packets_lost_mtu_exceeded, packets_lost_ttl_expired, tcp_flags,region, flow_direction, pkt_src_aws_service, pkt_dst_aws_service]
   [version, resource_type, account_id,tgw_id, tgw_attachment_id, tgw_src_vpc_account_id, tgw_dst_vpc_account_id, tgw_src_vpc_id, tgw_dst_vpc_id, tgw_src_subnet_id, tgw_dst_subnet_id, tgw_src_eni, tgw_dst_eni, tgw_src_az_id, tgw_dst_az_id, tgw_pair_attachment_id, srcaddr= 10.0.2.*, dstaddr, srcport, dstport, protocol, packets, bytes,start,end, log_status, type,packets_lost_no_route, packets_lost_blackhole, packets_lost_mtu_exceeded, packets_lost_ttl_expired, tcp_flags,region, flow_direction, pkt_src_aws_service, pkt_dst_aws_service]
   ```

   次の例では、Transit Gateway ID tgw-123abc456bca、宛先ポート、およびバイト数でフィルタリングします。

   ```
   [version, resource_type, account_id,tgw_id=tgw-123abc456bca, tgw_attachment_id, tgw_src_vpc_account_id, tgw_dst_vpc_account_id, tgw_src_vpc_id, tgw_dst_vpc_id, tgw_src_subnet_id, tgw_dst_subnet_id, tgw_src_eni, tgw_dst_eni, tgw_src_az_id, tgw_dst_az_id, tgw_pair_attachment_id, srcaddr, dstaddr, srcport, dstport = 80 || dstport = 8080, protocol, packets, bytes >= 500,start,end, log_status, type,packets_lost_no_route, packets_lost_blackhole, packets_lost_mtu_exceeded, packets_lost_ttl_expired, tcp_flags,region, flow_direction, pkt_src_aws_service, pkt_dst_aws_service]
   ```

# AWS Transit Gateway フローログレコードを削除する
<a name="delete-flow-log"></a>

Amazon VPC コンソールを使用して Transit Gateway フローログを削除できます。

これらの手順では、リソースのフローログサービスが無効になります。フローログを削除しても、既存のログストリームは CloudWatch Logs から削除されず、ログファイルは Amazon S3 から削除されません。既存のフローログデータは、それぞれのサービスのコンソールを使用して削除する必要があります。さらに、Amazon S3 に公開するフローログを削除しても、バケットポリシーとログファイルのアクセスコントロールリスト (ACL) は削除されません。

**Transit Gateway のフローログを削除するには**

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

1. ナビゲーションペインで、**[Transit Gateway]** を選択します。

1. **[Transit Gateway ID]** を選択します。

1. [フローログ] セクションで、削除するフローログを選択します。

1. **[アクション]** を選択してから、**[フローログの削除]** を選択します。

1. **[削除]** を選択してフローを削除することを確認します。