← Cloudflare Logs / logs / logpush / logpush-job / enable-destinations
Включите Amazon Kinesis
Logpush поддерживает Amazon Kinesis ↗ в качестве назначения для всех наборов данных. Каждая запись Kinesis, отправленная Logpush, будет содержать пакет данных, сжатых GZIP, в формате JSON с разделением новой строкой (по умолчанию) или в формате, указанном в output_options параметр при создании задания.
Настройте Kinesis с помощью STS Assume Role (рекомендуется)
- Создайте роль IAM, которую сможет принять на себя Cloudflare Logpush, с указанными ниже доверительными отношениями:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::391854517948:user/cloudflare-logpush"
]
},
"Action": "sts:AssumeRole"
}
]
}- Убедитесь, что роль IAM имеет разрешение на выполнение действия
PutRecordдействие в вашем потоке Kinesis. Замените<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>"
}
]
}- Создайте задание Logpush, используя следующий формат для
destination_confполе:
kinesis://<STREAM_NAME>?region=<AWS_REGION>&sts-assume-role-arn=arn:aws:iam::<YOUR_AWS_ACCOUNT_ID>:role/<IAM_ROLE_NAME>- (необязательно) При использовании STS Assume Role можно указать
sts-external-idкакdestination_confпараметр, чтобы он был включён в запросы задания 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
}'Настройте Kinesis с помощью ключей доступа IAM
При настройке задания Logpush с помощью ключей доступа IAM убедитесь, что у пользователя IAM есть разрешение на выполнение действия PutRecord действие в вашем потоке Kinesis:
kinesis://<STREAM_NAME>?region=<AWS_REGION>&access-key-id=<AWS_ACCESS_KEY_ID>&secret-access-key=<AWS_SECRET_ACCESS_KEY>Пример ключа доступа IAM
$ 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
}'