Amazon Kinesis Data Firehose によるアクセスの制御 - Amazon Kinesis Data Firehose

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

Amazon Kinesis Data Firehose によるアクセスの制御

以下のセクションでは、Kinesis Data Firehose リソースへのアクセスを制御する方法について説明します。たとえば、Kinesis Data Firehose 配信ストリームにデータを送信できるようにアプリケーションにアクセス権を付与する方法などについて説明します。また、Kinesis Data Firehose に Amazon Simple Storage Service (Amazon S3) バケット、Amazon Redshift クラスター、または Amazon OpenSearch Service クラスターへのアクセス権を付与する方法と、Datadog、Dynatrace、LogicMonitor、MongoDB、New Relic、Splunk、または Sumo を使用する場合に必要なアクセス許可を付与する方法についても説明します。目的地としてのロジック。最後に、このトピックガイダンスでは、別の送信先にデータを配信できるように Kinesis Data Firehose を設定する方法について説明します。AWSアカウント. これらのすべてのアクセス形式を管理するテクノロジーは次のとおりです。AWS Identity and Access Management(IAM)。IAM の詳細については、「」を参照してください。IAM とは

Kinesis Data Firehose リソースへのアクセス権をアプリケーションに付与する

アプリケーションに Kinesis Data Firehose 配信ストリームへのアクセス権を付与するには、次の例のようなポリシーを使用します。Action セクションを変更するか、"firehose:*" を使用してすべてのオペレーションへのアクセス権を付与することで、アクセス権を付与する個別の API オペレーションを調整できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:DeleteDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:UpdateDestination" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/delivery-stream-name" ] } ] }

Kinesis Data Firehose に IAM ロールを引き受けることを許可する

コンソールを使用して配信ストリームを作成し、新しいロールを作成するオプションを選択した場合、AWSは、ロールに必要な信頼ポリシーをアタッチします。または、Kinesis Data Firehose で既存の IAM ロールを使用する場合、または独自にロールを作成する場合は、Kinesis Data Firehose がロールを引き受けることができるように、次の信頼ポリシーをそのロールにアタッチします。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

ロールの信頼関係を変更する方法については、「ロールの修正」を参照してください。

Kinesis Data Firehose へのアクセスをに付与します。AWS Glueデータ形式変換用

配信ストリームがデータ形式の変換を実行する場合、Kinesis Data Firehose はに保存されているテーブル定義を参照します。AWS Glue。Kinesis Data Firehose に必要なアクセス権を付与するにはAWS Glueで、次のステートメントをポリシーに追加します。テーブルの ARN を見つける方法については、「」を参照してください。指定するAWSリソース ARN のGlue

{ "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTableVersion", "glue:GetTableVersions" ], "Resource": "table-arn" }

Amazon S3 の送信先へのアクセス権を Kinesis Data Firehose に付与する

Amazon S3 送信先を使用している場合、Kinesis Data Firehose は S3 バケットにデータを配信し、オプションでAWS KMSデータ暗号化のためにお客様の所有しているキー。エラーログ記録が有効になっている場合、Kinesis Data Firehose はデータ配信エラーを CloudWatch ロググループとストリームにも送信します。配信ストリームを作成するときは、IAM ロールが必要です。Kinesis Data Firehose は IAM ロールを引き受け、指定されたバケット、キー、および CloudWatch ロググループとストリームへのアクセスを取得します。

次のアクセスポリシーを使用して、Kinesis Data Firehose が S3 バケットにアクセスできるようにします。AWS KMSkey。S3 バケットを所有していない場合、s3:PutObjectAclを Amazon S3 のアクションのリストに作成します。これにより、バケット所有者に Kinesis Data Firehose によって配信されるオブジェクトへのフルアクセスが許可されます。このポリシーには、Amazon Kinesis Data Streams へのアクセスを許可するステートメントも含まれています。データソースとして Kinesis Data Streams を使用しない場合は、そのステートメントを削除できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

その他の許可の詳細AWSお客様にアクセスするためのサービスAWSリソース、「」を参照してください。にアクセス許可を委任するロールの作成AWSサービスIAM ユーザーガイド

別のアカウントの Amazon S3 の送信先へのアクセス権を Kinesis Data Firehose に付与する方法については、「」を参照してください。Amazon S3 の送信先へのクロスアカウント間の配信

Amazon Redshift へのアクセス権を Kinesis Data Firehose に付与する

Amazon Redshift 送信先を使用している場合、Kinesis Data Firehose へのアクセスを付与するときは、以下を参照してください。

IAM ロールとアクセスポリシー

Amazon Redshift 送信先を使用している場合、Kinesis Data Firehose は中間の場所として S3 バケットにデータを配信します。オプションで、データ暗号化のためにお客様が所有している AWS KMS キーを使用できます。次に、Kinesis Data Firehose によって S3 バケットから Amazon Redshift クラスターにデータがロードされます。エラーログ記録が有効になっている場合、Kinesis Data Firehose はデータ配信エラーを CloudWatch ロググループとストリームにも送信します。Kinesis Data Firehose は指定した Amazon Redshift ユーザー名とパスワードを使用してクラスターにアクセスし、IAM ロールを使用して、指定されたバケット、キー、CloudWatch ロググループとストリームにアクセスします。配信ストリームを作成するときは、IAM ロールが必要です。

次のアクセスポリシーを使用して、Kinesis Data Firehose が S3 バケットにアクセスできるようにします。AWS KMSkey。S3 バケットを所有していない場合、s3:PutObjectAclを Amazon S3 アクションのリストに付与します。これにより、Kinesis Data Firehose で配信されるオブジェクトへのフルアクセスが、バケット所有者に付与されます。このポリシーには、Amazon Kinesis Data Streams へのアクセスを許可するステートメントも含まれています。データソースとして Kinesis Data Streams を使用しない場合は、そのステートメントを削除できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

その他の許可の詳細AWSお客様にアクセスするためのサービスAWSリソース、「」を参照してください。にアクセス許可を委任するロールの作成AWSサービスIAM ユーザーガイド

Amazon Redshift クラスターへの VPC アクセス

Amazon Redshift クラスターが仮想プライベートクラウド (VPC) にある場合、パブリック IP アドレスでパブリックにアクセス可能である必要があります。また、Kinesis データファイヤーホース IP アドレスのブロックを解除して、Amazon Redshift クラスターへの Kinesis Data Firehose アクセス権を付与します。Kinesis Data Firehose は現在、利用可能なリージョンごとに 1 つの CIDR ブロックを使用します。

  • 13.58.135.96/27米国東部 (オハイオ)

  • 52.70.63.192/27米国東部 (バージニア北部) の場合

  • 13.57.135.192/27米国西部 (北カリフォルニア) の場合

  • 52.89.255.224/27米国西部 (オレゴン) の場合

  • 18.253.138.96/27forAWSGovCloud (米国東部)

  • 52.61.204.160/27forAWSGovCloud (米国西部)

  • 35.183.92.128/27カナダ向け (中部)

  • 18.162.221.32/27アジアパシフィック (香港) の場合

  • 13.232.67.32/27アジアパシフィック (ムンバイ) の場合

  • 13.209.1.64/27アジアパシフィック (ソウル) の場合

  • 13.228.64.192/27アジアパシフィック (シンガポール) の場合

  • 13.210.67.224/27アジアパシフィック (シドニー) の場合

  • 13.113.196.224/27アジアパシフィック (東京) の場合

  • 52.81.151.32/27中国 (北京)

  • 161.189.23.64/27中国 (寧夏)

  • 35.158.127.160/27欧州 (フランクフルト) 向け

  • 52.19.239.192/27欧州 (アイルランド) 向け

  • 18.130.1.96/27欧州 (ロンドン)

  • 35.180.1.96/27欧州 (パリ)

  • 13.53.63.224/27欧州 (ストックホルム)

  • 15.185.91.0/27中東 (バーレーン) 向け

  • 18.228.1.128/27南米 (サンパウロ) 向け

  • 15.161.135.128/27欧州 (ミラノ)

  • 13.244.121.224/27アフリカ (ケープタウン)

  • 13.208.177.192/27アジアパシフィック (大阪) の場合

IP アドレスのブロックを解除する方法の詳細については、ステップを参照してください。クラスターへのアクセスを許可するAmazon Redshift 入門ガイドガイド。

Kinesis Data Firehose にパブリック OpenSearch サービスのデスティネーションへのアクセスを付与する

OpenSearch サービスの送信先を使用している場合、Kinesis Data Firehose はデータを OpenSearch Service クラスターに配信し、同時に、失敗したドキュメントまたはすべてのドキュメントを S3 バケットにバックアップします。エラーログ記録が有効になっている場合、Kinesis Data Firehose はデータ配信エラーを CloudWatch ロググループとストリームにも送信します。Kinesis Data Firehose は IAM ロールを使用して、指定された OpenSearch サービスドメイン S3 バケットにアクセスします。AWS KMSキー、CloudWatch ロググループとストリーム。配信ストリームを作成するときは、IAM ロールが必要です。

次のアクセスポリシーを使用して、Kinesis Data Firehose が S3 バケット、OpenSearch Service ドメイン、および OpenSearch Service ドメイン、およびAWS KMSkey。S3 バケットを所有していない場合、s3:PutObjectAclを Amazon S3 アクションのリストに付与します。これにより、Kinesis Data Firehose で配信されるオブジェクトへのフルアクセスが、バケット所有者に付与されます。このポリシーには、Amazon Kinesis Data Streams へのアクセスを許可するステートメントも含まれています。データソースとして Kinesis Data Streams を使用しない場合は、そのステートメントを削除できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "es:DescribeDomain", "es:DescribeDomains", "es:DescribeDomainConfig", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name", "arn:aws:es:region:account-id:domain/domain-name/*" ] }, { "Effect": "Allow", "Action": [ "es:ESHttpGet" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name/_all/_settings", "arn:aws:es:region:account-id:domain/domain-name/_cluster/stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_mapping/type-name", "arn:aws:es:region:account-id:domain/domain-name/_nodes", "arn:aws:es:region:account-id:domain/domain-name/_nodes/stats", "arn:aws:es:region:account-id:domain/domain-name/_nodes/*/stats", "arn:aws:es:region:account-id:domain/domain-name/_stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_stats" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

その他の許可の詳細AWSお客様にアクセスするためのサービスAWSリソース、「」を参照してください。にアクセス許可を委任するロールの作成AWSサービスIAM ユーザーガイド

別のアカウントの OpenSearch Service クラスターへのアクセス権を Kinesis Data Firehose に付与する方法については、「」を参照してください。OpenSearch サービスの送信先へのクロスアカウント間の配信

VPC の OpenSearch サービスの送信先へのアクセス権を Kinesis Data Firehose に付与する

OpenSearch Service ドメインが VPC 内にある場合は、前のセクションで説明したアクセス許可を Kinesis Data Firehose に付与してください。さらに、Kinesis Data Firehose に、次のアクセス権をに付与して、が OpenSearch Service ドメインの VPC にアクセスできるようにします。

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

  • ec2:DeleteNetworkInterface

これらのアクセス許可を配信ストリームの作成後に取り消すと、Kinesis Data Firehose は必要なときに追加の ENI を作成してスケールアウトすることができなくなります。そのため、パフォーマンスが低下することがあります。

配信ストリームを作成または更新するときに、Kinesis Data Firehose が OpenSearch Service ドメインにデータを送信するときに使用するセキュリティグループを指定します。OpenSearch Service ドメインで使用しているのと同じセキュリティグループを使用することも、別のセキュリティグループを使用することもできます。別のセキュリティグループを指定する場合は、その OpenSearch Service ドメインのセキュリティグループへのアウトバウンド HTTPS トラフィックが許可されていることを確認します。また、OpenSearch Service ドメインのセキュリティグループで、配信ストリームの設定時に指定したセキュリティグループからの HTTPS トラフィックを必ず許可します。配信ストリームと OpenSearch Service ドメインの両方に同じセキュリティグループを使用する場合は、セキュリティグループのインバウンドルールで HTTPS トラフィックを必ず許可します。セキュリティグループルールの詳細については、「」を参照してください。セキュリティグループのルールAmazon VPC のドキュメントを参照してください。

Splunk の送信先へのアクセス権を Kinesis Data Firehose に付与する

Splunk 送信先を使用している場合、Kinesis Data Firehose は、Splunk HTTP Event Collector (HEC) エンドポイントにデータを配信します。また、指定した Amazon S3 バケットにデータをバックアップします。必要に応じてAWS KMSAmazon S3 サーバー側での暗号化用に所有しているキー。エラーログ記録が有効になっている場合、Kinesis Data Firehose はデータ配信エラーを CloudWatch ログストリームに送信します。データ変換のために AWS Lambda を使用することもできます。... を使用した場合AWSロードバランサー、Classic Load Balancer であることを確認します。Kinesis Data Firehose では、アプリケーションロードバランサーもネットワークロードバランサもサポートしていません。また、Cookie の失効を無効化した期間ベースのスティッキーセッションを有効にしてください。これを行う方法については、「期間ベースのセッション維持」を参照してください。

配信ストリームを作成するときは、IAM ロールが必要です。Kinesis Data Firehose は IAM ロールを引き受け、指定されたバケット、キー、および CloudWatch ロググループとストリームへのアクセスを取得します。

次のアクセスポリシーを使用して、が S3 バケットにアクセスできるように Kinesis Data Firehose を有効にします。S3 バケットを所有していない場合、s3:PutObjectAclを Amazon S3 アクションのリストに付与します。これにより、Kinesis Data Firehose で配信されるオブジェクトへのフルアクセスが、バケット所有者に付与されます。このポリシーは、エラーログ記録のための CloudWatch への Kinesis Data Firehose アクセスと、AWS Lambdaデータ変換のために。このポリシーには、Amazon Kinesis Data Streams へのアクセスを許可するステートメントも含まれています。データソースとして Kinesis Data Streams を使用しない場合は、そのステートメントを削除できます。Kinesis Data Firehose は IAM を使用して Splunk にアクセスしません。Splunk へのアクセスには、HEC トークンが使用されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

その他の許可の詳細AWSお客様にアクセスするためのサービスAWSリソース、「」を参照してください。にアクセス許可を委任するロールの作成AWSサービスIAM ユーザーガイド

VPC の Splunk へのアクセス

Splunk プラットフォームが VPC にある場合、パブリック IP アドレスでパブリックにアクセス可能である必要があります。また、Kinesis Data Firehose の IP アドレスをブロック解除して、Splunk プラットフォームへのアクセス権をに付与する必要があります。現在 Kinesis Data Firehose は次の CIDR ブロックを使用します。

  • 18.216.68.160/27, 18.216.170.64/27, 18.216.170.96/27米国東部 (オハイオ)

  • 34.238.188.128/26, 34.238.188.192/26, 34.238.195.0/26米国東部 (バージニア北部) の場合

  • 13.57.180.0/26米国西部 (北カリフォルニア) の場合

  • 34.216.24.32/27, 34.216.24.192/27, 34.216.24.224/27米国西部 (オレゴン) の場合

  • 18.253.138.192/26forAWSGovCloud (米国東部)

  • 52.61.204.192/26forAWSGovCloud (米国西部)

  • 18.162.221.64/26アジアパシフィック (香港) の場合

  • 13.232.67.64/26アジアパシフィック (ムンバイ) の場合

  • 13.209.71.0/26アジアパシフィック (ソウル) の場合

  • 13.229.187.128/26アジアパシフィック (シンガポール) の場合

  • 13.211.12.0/26アジアパシフィック (シドニー) の場合

  • 13.230.21.0/27, 13.230.21.32/27アジアパシフィック (東京) の場合

  • 35.183.92.64/26カナダ向け (中部)

  • 18.194.95.192/27, 18.194.95.224/27, 18.195.48.0/27欧州 (フランクフルト) 向け

  • 34.241.197.32/27, 34.241.197.64/27, 34.241.197.96/27欧州 (アイルランド) 向け

  • 18.130.91.0/26欧州 (ロンドン)

  • 35.180.112.0/26欧州 (パリ)

  • 13.53.191.0/26欧州 (ストックホルム)

  • 15.185.91.64/26中東 (バーレーン) 向け

  • 18.228.1.192/26南米 (サンパウロ) の場合

  • 15.161.135.192/26欧州 (ミラノ)

  • 13.244.165.128/26アフリカ (ケープタウン)

  • 13.208.217.0/26アジアパシフィック (大阪) の場合

HTTP エンドポイントの送信先へのアクセス権を Kinesis Data Firehose に付与する

Kinesis Data Firehose を使用して、任意の HTTP エンドポイントにデータを配信できます。Kinesis Data Firehose は、指定した Amazon S3 バケットにデータをバックアップします。必要に応じて、AWS KMSAmazon S3 サーバー側での暗号化用に所有しているキー。エラーログ記録が有効になっている場合、Kinesis Data Firehose はデータ配信エラーを CloudWatch ログストリームに送信します。データ変換のために AWS Lambda を使用することもできます。

配信ストリームを作成するときは、IAM ロールが必要です。Kinesis Data Firehose は IAM ロールを引き受け、指定されたバケット、キー、および CloudWatch ロググループとストリームへのアクセスを取得します。

次のアクセスポリシーを使用して、Kinesis Data Firehose が、データバックアップのために指定した S3 バケットにアクセスできるようにします。S3 バケットを所有していない場合、s3:PutObjectAclを Amazon S3 アクションのリストに付与します。これにより、Kinesis Data Firehose で配信されるオブジェクトへのフルアクセスが、バケット所有者に付与されます。このポリシーは、エラーログ記録のための CloudWatch への Kinesis Data Firehose アクセスと、AWS Lambdaデータ変換のために。このポリシーには、Amazon Kinesis Data Streams へのアクセスを許可するステートメントも含まれています。データソースとして Kinesis Data Streams を使用しない場合は、そのステートメントを削除できます。

重要

Kinesis Data Firehose では、IAM を使用して、サポートされているサードパーティサービスプロバイダーが所有する HTTP エンドポイントの送信先 (Datadog、Dynatrace、LogicMonitor、MongoDB、New Relic、Splunk、または Sumo Logic など) にアクセスすることはありません。サポートされているサードパーティサービスプロバイダーが所有する指定された HTTP エンドポイントの宛先にアクセスするには、そのサービスプロバイダーに連絡して、Kinesis Data Firehose からそのサービスへのデータ配信を有効にするために必要な API キーまたはアクセスキーを取得します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

その他の許可の詳細AWSお客様にアクセスするためのサービスAWSリソース、「」を参照してください。にアクセス許可を委任するロールの作成AWSサービスIAM ユーザーガイド

重要

現在、Kinesis Data Firehose は VPC 内の HTTP エンドポイントへのデータ配信をサポートしていません。

Amazon S3 の送信先へのクロスアカウント間の配信

♪AWS CLIまたは Kinesis Data Firehose API を使用して、1 つの配信ストリームを作成します。AWS別のアカウントで Amazon S3 の送信先を持つアカウント。次の手順では、アカウント A が所有する Kinesis Data Firehose 配信ストリームを設定して、アカウント B が所有する Amazon S3 バケットにデータを配信する例を示します。

  1. で示されているステップを使用して IAM ロールをアカウント A に作成します。Amazon S3 の送信先へのアクセス権を Kinesis Firehose に付与する

    注記

    この場合、アクセスポリシーで指定した Amazon S3 バケットはアカウント B が所有しています。追加していることを確認してくださいs3:PutObjectAclにアクセスポリシーの Amazon S3 アクションのリストに移動します。これにより、アカウント B に、Amazon Kinesis Data Firehose によって配信されたオブジェクトへのフルアクセスが付与されます。この権限は、クロスアカウント配信に必要です。Kinesis Data Firehose は、リクエストの「x-amz-acl」ヘッダーを「バケットオーナーフルコントロール」に設定します。

  2. 以前に作成した IAM ロールからのアクセスを許可するには、アカウント B で S3 バケットポリシーを作成します。次のコードは、バケットポリシーの例です。詳細については、「バケットポリシーとユーザーポリシーの使用」を参照してください。

    { "Version": "2012-10-17", "Id": "PolicyID", "Statement": [ { "Sid": "StmtID", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountA-id:role/iam-role-name" }, "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }
  3. ステップ 1 で作成した IAM ロールを使用して、アカウント A で Kinesis Data Firehose 配信ストリームを作成します。

OpenSearch サービスの送信先へのクロスアカウント間の配信

♪AWS CLIまたは Kinesis Data Firehose API を使用して、1 つの配信ストリームを作成します。AWSOpenSearch Service の送信先が別のアカウントにあるアカウント。次の手順では、アカウント A で Kinesis Data Firehose 配信ストリームを作成し、アカウント B が所有する OpenSearch Service 送信先にデータを配信するよう設定する方法の例を示しています。

  1. で示されているステップを使用して IAM ロールをアカウント A に作成します。Kinesis Data Firehose にパブリック OpenSearch サービスのデスティネーションへのアクセスを付与する

  2. 前のステップで作成した IAM ロールからのアクセスを許可するには、アカウント B で OpenSearch Service ポリシーを作成します。例として、JSON を以下に示します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account-A-ID:role/firehose_delivery_role " }, "Action": "es:ESHttpGet", "Resource": [ "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_all/_settings", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_cluster/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_mapping/roletest", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/*/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_stats" ] } ] }
  3. ステップ 1 で作成した IAM ロールを使用して、アカウント A で Kinesis Data Firehose 配信ストリームを作成します。配信ストリームを作成する場合は、AWS CLIまたは Kinesis Data Firehose API を使用して、ClusterEndpointの代わりに、フィールドDomainARNのための OpenSearch Service.

注記

1 つのに配信ストリームを作成するにはAWSOpenSearch Service の送信先が別のアカウントにある場合は、AWS CLIまたは Kinesis Data Firehose API を使用します。AWS Management Console を使用して、このような種類のクロスアカウント設定を作成することはできません。

タグを使用したアクセスの制御

オプションを使用できますCondition要素 (またはCondition ブロック) IAM ポリシーで、タグキーと値に基づいて Kinesis Data Firehose オペレーションへのアクセスを微調整できます。以下のサブセクションでは、さまざまな Kinesis Data Firehose オペレーションに対してこれを行う方法について説明します。の使用についての詳細Condition要素とその中で使用できる演算子については、「」を参照してください。IAM JSON ポリシーエレメント: 条件

CreateDeliveryStream および TagDeliveryStream

CreateDeliveryStream オペレーションと TagDeliveryStream オペレーションでは、aws:RequestTag 条件キーを使用します。次の例では、MyKeyMyValue はキー、およびタグの対応する値を表しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:CreateDeliveryStream", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/MyKey": "MyValue" } } } ] }

UntagDeliveryStream

UntagDeliveryStream オペレーションでは、aws:TagKeys 条件キーを使用します。次の例では、MyKey はサンプルタグキーです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:UntagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ] }

ListDeliveryStreams

ListDeliveryStreams でタグベースのアクセスコントロールを使用することはできません。

その他の Kinesis Data Firehose の操作

以外の Kinesis Data Firehose のすべての操作CreateDeliveryStream,TagDeliveryStream,UntagDeliveryStream, およびListDeliveryStreamsで、aws:RequestTag条件キー。次の例では、MyKeyMyValue はキー、およびタグの対応する値を表しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "firehose:DescribeDeliveryStream", "Resource": "*", "Condition": { "Null": { "firehose:ResourceTag/MyKey": "MyValue" } } ] }