Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Amazon Kinesis を有効にする

最終更新 Markdown で表示Agent セットアップ

Logpush は、すべてのデータセットの送信先として Amazon Kinesis をサポートします。Logpush が送る各 Kinesis レコードには、デフォルトでは改行区切り JSON 形式の GZIP 圧縮データのバッチが含まれます。ジョブ作成時に output_options パラメーターで指定した形式を使うこともできます。

STS Assume Role で Kinesis を設定する(推奨)

  1. Cloudflare Logpush が Assume するための IAM Role を、次の信頼関係で作成します。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::391854517948:user/cloudflare-logpush"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
  1. IAM ロールに、Kinesis ストリームに対する PutRecord アクションの実行権限があることを確認します。<AWS_REGION><YOUR_AWS_ACCOUNT_ID><STREAM_NAME> はご自身の値に置き換えてください。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kinesis:PutRecord",
            "Resource": "arn:aws:kinesis:<AWS_REGION>:<YOUR_AWS_ACCOUNT_ID>:stream/<STREAM_NAME>"
        }
    ]
}
  1. destination_conf フィールドに次の形式を使って、Logpush ジョブを作成します。
kinesis://<STREAM_NAME>?region=<AWS_REGION>&sts-assume-role-arn=arn:aws:iam::<YOUR_AWS_ACCOUNT_ID>:role/<IAM_ROLE_NAME>
  1. (任意)STS Assume Role を使う場合、destination_conf パラメーターとして sts-external-id を含め、Logpush ジョブの Kinesis へのリクエストに含めることができます。詳細は Securely Using External ID for Accessing AWS Accounts Owned by Others を参照してください。
kinesis://<STREAM_NAME>?region=<AWS_REGION>&sts-assume-role-arn=arn:aws:iam::<YOUR_AWS_ACCOUNT_ID>:role/<IAM_ROLE_NAME>&sts-external-id=<EXTERNAL_ID>

STS Assume Role の例

$ curl https://api.cloudflare.com/client/v4/zones/$ZONE_TAG/logpush/jobs \
-H 'Authorization: Bearer <API_TOKEN>' \
-H 'Content-Type: application/json' -d '{
  "name": "kinesis",
  "destination_conf": "kinesis://<STREAM_NAME>?region=<AWS_REGION>&sts-assume-role-arn=arn:aws:iam::<YOUR_AWS_ACCOUNT_ID>:role/<IAM_ROLE_NAME>",
  "dataset": "http_requests",
  "enabled": true
}'

IAM Access Keys で Kinesis を設定する

IAM Access Keys で Logpush ジョブを設定する場合、IAM ユーザーに Kinesis ストリームに対する PutRecord アクションの実行権限があることを確認してください。

kinesis://<STREAM_NAME>?region=<AWS_REGION>&access-key-id=<AWS_ACCESS_KEY_ID>&secret-access-key=<AWS_SECRET_ACCESS_KEY>

IAM Access Key の例

$ curl https://api.cloudflare.com/client/v4/zones/$ZONE_TAG/logpush/jobs \
-H 'Authorization: Bearer <API_TOKEN>' \
-H 'Content-Type: application/json' -d '{
  "name": "kinesis",
  "destination_conf": "kinesis://<STREAM_NAME>?region=<AWS_REGION>&access-key-id=<AWS_ACCESS_KEY_ID>&secret-access-key=<AWS_SECRET_ACCESS_KEY>",
  "dataset": "http_requests",
  "enabled": true
}'

役に立ちましたか?