

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

# 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 フローログレコード
<a name="process-records-s3"></a>

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