Kinesis Data Firehose へのフローログの発行
フローログはフローログデータを直接 Kinesis Data Firehose に発行できます。
Kinesis Data Firehose に発行すると、フローログデータは Kinesis Data Firehose 配信ストリームにプレーンテキスト形式で発行されます。
料金
標準の取り込み料金と配信料金が適用されます。詳細については、「Amazon CloudWatch 料金表
クロスアカウント配信のための IAM ロール
Kinesis Data Firehose に発行する場合、監視するリソースと同じアカウント (ソースアカウント) または別のアカウント (送信先アカウント) にある配信ストリームを選択できます。Kinesis Data Firehose へのフローログのクロスアカウント配信を有効にするには、ソースアカウントと送信先アカウントの両方に IAM ロールを作成する必要があります。
ソースアカウントロール
ソースアカウントで、次のアクセス許可を付与するロールを作成します。この例のロールの名前は mySourceRole
ですが、このロールには別の名前を選択できます。最後のステートメントにより、送信先アカウントのロールがこのロールを引き受けることができるようになります。条件ステートメントにより、このロールは指定されたリソースを監視する場合に限り、ログ配信サービスだけに渡されます。ポリシーを作成するときに、監視する VPC、ネットワークインターフェイス、またはサブネットを条件キー iam:AssociatedResourceARN
で指定します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
source-account
:role/mySourceRole
", "Condition": { "StringEquals": { "iam:PassedToService": "delivery.logs.amazonaws.com" }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:ec2:region
:source-account
:vpc/vpc-00112233344556677
" ] } } }, { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:GetLogDelivery" ], "Resource": "*" }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::destination-account
:role/AWSLogDeliveryFirehoseCrossAccountRole" } ] }
このロールに以下の信頼ポリシーがあることを確認します。これにより、ログ配信サービスがロールを引き受けることができます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
ソースアカウントから、以下に説明する手順に従ってロールを作成します。
ソースアカウントロールを作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、[ポリシー] を選択します。
-
[Create policy] (ポリシーの作成) を選択します。
-
[ポリシーの作成] ページで、次の操作を行います。
-
[JSON] を選択します。
-
このウィンドウのコンテンツを、このセクションの冒頭にあるアクセス許可ポリシーに置き換えてください。
-
[Next: Tags] (次へ: タグ)、[Next: Review] (次へ: 確認) の順に選択します。
-
ポリシーの名前と説明 (省略可能) を入力し、[Create policy] (ポリシーの作成) を選択します。
-
-
ナビゲーションペインで [ロール] を選択します。
-
[ロールの作成] を選択します。
-
[Trusted entity type] (信頼されたエンティティのタイプ) で、[Custom trust policy] (カスタム信頼ポリシー) を選択します。[Custom trust policy] (カスタム信頼ポリシー) で、
"Principal": {},
を次のように置き換え、ログ配信サービスを指定します。[次へ] を選択します。"Principal": { "Service": "delivery.logs.amazonaws.com" },
-
[Add permissions] (アクセス許可の追加) ページで、この手順で先ほど作成したポリシーの横にあるチェックボックスを選択し、[Next] (次へ) を選択します。
-
ロールの名前を入力し、オプションで説明を入力します。
-
[ロールの作成] を選択します。
送信先アカウントロール
送信先アカウントで、AWSLogDeliveryFirehoseCrossAccountRole で始まる名前のロールを作成します。このロールには、以下のアクセス許可が必要です。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "firehose:TagDeliveryStream" ], "Resource": "*" } ] }
このロールに次の信頼ポリシーがあることを確認します。これにより、ソースアカウントで作成したロールがこのロールを引き受けることができます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
source-account
:role/mySourceRole
" }, "Action": "sts:AssumeRole" } ] }
送信先アカウントから、以下に説明する手順に従ってロールを作成します。
送信先アカウントロールを作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、[ポリシー] を選択します。
-
[Create policy] (ポリシーの作成) を選択します。
-
[ポリシーの作成] ページで、次の操作を行います。
-
[JSON] を選択します。
-
このウィンドウのコンテンツを、このセクションの冒頭にあるアクセス許可ポリシーに置き換えてください。
-
[Next: Tags] (次へ: タグ)、[Next: Review] (次へ: 確認) の順に選択します。
-
AWSLogDeliveryFirehoseCrossAccountRole で始まるポリシーの名前を入力し、[Create policy] (ポリシーの作成) を選択します。
-
-
ナビゲーションペインで [ロール] を選択します。
-
[ロールの作成] を選択します。
-
[Trusted entity type] (信頼されたエンティティのタイプ) で、[Custom trust policy] (カスタム信頼ポリシー) を選択します。[Custom trust policy] (カスタム信頼ポリシー) で、
"Principal": {},
を次のように置き換え、ソースアカウントロールを指定します。[次へ] を選択します。"Principal": { "AWS": "arn:aws:iam::
source-account
:role/mySourceRole
" }, -
[Add permissions] (アクセス許可の追加) ページで、この手順で先ほど作成したポリシーの横にあるチェックボックスを選択し、[Next] (次へ) を選択します。
-
ロールの名前を入力し、オプションで説明を入力します。
-
[ロールの作成] を選択します。
Kinesis Data Firehose に発行するフローログの作成
VPCs、サブネット、またはネットワークインターフェイスのフローログを作成できます。
前提条件
-
送信先の Kinesis Data Firehose 配信ストリームを作成します。ソースとして [Direct Put] を使用します。詳細については、「Kinesis Data Firehose 配信ストリームの作成」を参照してください。
-
フローログを別のアカウントに発行する場合は、「クロスアカウント配信のための IAM ロール」の説明に従って必要な IAM ロールを作成します。
Kinesis Data Firehose に発行するフローログを作成するには
-
以下のいずれかを実行します。
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。ナビゲーションペインで、[Network Interfaces] を選択します。ネットワークインターフェイスのチェックボックスをオンにします。 -
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。画面左枠のナビゲーションペインで、[Your VPCs] を選択します。VPC のチェックボックスをオンにします。 -
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。ナビゲーションペインで、[Subnets] (サブネット) を選択します。サブネットのチェックボックスをオンにします。
-
-
[Actions]、[Create flow log] を選択します。
-
[Filter] (フィルター) で、ログに記録するトラフィックの種類を指定します。
-
[Accepted] (承認) - 承認されたトラフィックのみをログに記録します
-
[Rejected] (拒否) - 拒否されたトラフィックのみをログに記録します
-
[All] (すべて) - 承認されたトラフィックと拒否されたトラフィックをログに記録します。
-
-
[Maximum aggregation interval] で、フローがキャプチャされ、1 つのフローログレコードに集約される最大期間を選択します。
-
[Destination] (送信先) で、次のいずれかのオプションを選択します。
-
[Send to Kinesis Data Firehose in the same account] (同じアカウントの Kinesis Data Firehose に送信する) — 配信ストリームと監視するリソースは同じアカウントにあります。
-
[Send to Kinesis Data Firehose in a different account] (別のアカウントの Kinesis Data Firehose に送信する) — 配信ストリームと監視するリソースは異なるアカウントにあります。
-
-
[Kinesis Data Firehose delivery stream] (Kinesis Data Firehose 配信ストリーム) で、作成した配信ストリームを選択します。
-
[クロスアカウント配信のみ] [IAM roles] (IAM ロール) で、必要なロールを指定します (「クロスアカウント配信のための IAM ロール」を参照)。
-
(オプション) フローログにタグを適用するには、[Add new tag] (新規タグを追加) を選択します。
-
[Create flow log] (フローログの作成) を選択します。
コマンドラインツールを使用して Kinesis Data Firehose に発行されるフローログを作成するには
以下のいずれかのコマンドを使用します。
-
create-flow-logs (AWS CLI)
-
New-EC2FlowLogs (AWS Tools for Windows PowerShell)
次の AWS CLI の例では、指定した VPC のすべてのトラフィックをキャプチャするフローログを作成し、そのフローログを同じアカウントの指定された Kinesis Data Firehose 配信ストリームに配信します。
aws ec2 create-flow-logs --traffic-type ALL \ --resource-type
VPC
\ --resource-idsvpc-00112233344556677
\ --log-destination-typekinesis-data-firehose
\ --log-destination arn:aws:firehose:us-east-1
:123456789012
:deliverystream:flowlogs_stream
次の AWS CLI の例では、指定した VPC のすべてのトラフィックをキャプチャするフローログを作成し、そのフローログを別のアカウントの指定された Kinesis Data Firehose 配信ストリームに配信します。
aws ec2 create-flow-logs --traffic-type ALL \ --resource-type
VPC
\ --resource-idsvpc-00112233344556677
\ --log-destination-typekinesis-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
Kinesis Data Firehose でのフローログレコードの処理
フローログデータは、配信ストリーム用に設定した送信先から取得できます。