# Amazon CloudFront

### Amazon CloudFront から S3 へのログ配信

Amazon CloudFront から Amazon S3 バケットにアクセスログを送信するには、CloudFront 標準ロギングを有効にします。以下では、S3 ベースの配信においてより一般的で簡単な方法である標準ロギングを中心に、重要な手順を説明します。

### **前提条件**

Web トラフィックログを Netacea に正常にストリーミングするには、以下を確認してください：

* AWS マネジメントコンソールにアクセスできる有効な AWS アカウントを持っていること。
* Amazon S3 バケットが作成され、CloudFront からのログを受け入れるように構成されていること。
* AWS アカウント ID を Netacea と共有していること。

  > これは、Netacea が CloudFront ログを受け入れるための正しいバケットポリシーを適用するために必要です。
* Netacea から必要な S3 バケットの詳細（バケット名と ARN）を受け取っていること。これらは[こちら](https://netacea.gitbook.io/portal-docs/user-guides-and-videos/portal-setup-and-log-shipping-guide)で確認できます。
* ログ分析のために Netacea が必要とする[最小限の必須データセット](#netacea-minimum-required-dataset)のフィールドを把握していること。

### 標準アクセスロギング（S3 へのログ）

このオプションはすべてのリクエストをログに記録し、バッチでログを配信します（通常、数分から 1 時間以内）。

#### ステップ 1: Netacea に AWS アカウント ID を提供する

CloudFront ディストリビューションにはバケットへの書き込みアクセス権が必要です。これには、AWS アカウント ID を含むバケットポリシーが必要です。データを受け入れる前に、これを共有する必要があります。

**バケットポリシーの例:**

```
{
   "Version": "2012-10-17",
   "Statement":[
      {
        "Sid": "AllowCloudFrontLogs",
        "Effect": "Allow",
        "Principal": {
            "Service": "cloudfront.amazonaws.com"
         },
         "Action": "s3:PutObject",
         "Resource": "arn:aws:s3:::cloudfront-access-logs/*",
         "Condition": {
            "StringEquals": {
                "AWS:SourceAccount": "YOUR_AWS_ACCOUNT_ID"
           }
         }
      }
   ]
}
```

#### ステップ 2: CloudFront ディストリビューションでロギングを有効にする

1. **AWS マネジメントコンソール** → **CloudFront** を開きます。
2. ディストリビューションを選択 → **ロギングタブ**に移動します
3. **追加 > Amazon S3 バケット**をクリックします。
4. Netacea ポータルから S3 バケットの詳細を入力します（`arn:aws:s3:::bucketName`）
5. 追加設定に移動します。
   1. **フィールド選択**で、Netacea に送信するフィールドを選択します（以下の[ Netacea 必須データセット](#netacea-required-dataset)を参照してください）。
6. 変更を保存します。

### **Netacea 必須データセット**

POV を正常に完了するために、Netacea は分析用に以下のデータの提供を要求します：

<table><thead><tr><th width="142.33331298828125" valign="top">必須フィールド</th><th width="169" valign="top">AWS フィールド名</th><th valign="top">説明</th></tr></thead><tbody><tr><td valign="top">タイムスタンプ</td><td valign="top">date</td><td valign="top">リクエストが受信された時刻</td></tr><tr><td valign="top"></td><td valign="top">time</td><td valign="top">リクエストが受信された時刻</td></tr><tr><td valign="top">IP アドレス</td><td valign="top">c-ip</td><td valign="top">リクエストが送信された IP アドレス</td></tr><tr><td valign="top">ユーザーエージェント</td><td valign="top">cs-user-agent</td><td valign="top">クライアントがヘッダーで送信したユーザーエージェント文字列</td></tr><tr><td valign="top">メソッド</td><td valign="top">cs-method</td><td valign="top">リクエストの HTTP メソッド</td></tr><tr><td valign="top">パス</td><td valign="top">cs-uri-stem</td><td valign="top">リクエストされたリソースのパス</td></tr><tr><td valign="top">クエリ</td><td valign="top">cs-uri-query</td><td valign="top">リクエストのクエリ文字列</td></tr><tr><td valign="top">ステータス</td><td valign="top">sc-status</td><td valign="top">サーバーが返した HTTP ステータスコード</td></tr><tr><td valign="top">リファラー</td><td valign="top">cs(Referer)</td><td valign="top">ユーザーがリンクをたどった元の Web ページ</td></tr><tr><td valign="top">送信バイト数</td><td valign="top">cs-bytes</td><td valign="top">サーバーのレスポンスの一部として送信されたバイト数</td></tr><tr><td valign="top">ホスト</td><td valign="top">cs(Host)</td><td valign="top">CloudFront ディストリビューションのドメイン名</td></tr><tr><td valign="top">プロトコル</td><td valign="top">Protocol</td><td valign="top">リクエストのプロトコル</td></tr><tr><td valign="top">X forwarded for*</td><td valign="top">x-forwarded-for</td><td valign="top">プロキシ経由の場合、クライアントリクエストの接続元 IP アドレス [配列]</td></tr><tr><td valign="top">True-Client-IP*</td><td valign="top">True-Client-IP</td><td valign="top">オリジナルのクライアント IP の信頼できるソース</td></tr><tr><td valign="top">リクエスト時間</td><td valign="top">time-taken</td><td valign="top">CloudFront がリクエストを処理するのにかかった合計時間（秒）</td></tr></tbody></table>

\* プロキシがクライアント > オリジン間のトラフィック経路に存在する場合に有用です

### 最終ステップ

ログ配信が有効になったら、**Netacea ソリューションエンジニアにご連絡ください**。これにより、以下が可能になります：

* データの受信確認
* データセットのフォーマットと完全性の検証
* 十分な量のデータが収集された後、分析を開始

セットアップ中にサポートが必要な場合は、Netacea SE チームがサポートいたしますので、お気軽にお問い合わせください。
