翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Data Firehose によるアクセスの制御
以下のセクションでは、Amazon Data Firehose リソースとのアクセスを制御する方法について説明します。これらの情報には、Firehose ストリームにデータを送信できるようにアプリケーションアクセスを許可する方法が含まれます。また、Amazon Simple Storage Service (Amazon S3) バケット、Amazon Redshift クラスター、または Amazon OpenSearch Service クラスターへのアクセスを Amazon Data Firehose に許可する方法や、Datadog、Dynatrace、 LogicMonitorMongoDB、New Relic、Splunk、または Sumo Logic を宛先として使用する場合に必要となるアクセス許可についても説明します。最後に、このトピックガイダンスでは、別の AWS アカウントに属する送信先にデータを配信できるように Amazon Data Firehose を設定する方法を説明します。これらすべての形式のアクセスを管理するテクノロジーは AWS Identity and Access Management () ですIAM。の詳細についてはIAM、「 とはIAM」を参照してください。
内容
- Firehose リソースへのアクセスを許可する
- Firehose にプライベート Amazon MSKクラスターへのアクセスを許可する
- Firehose にIAMロールの引き受けを許可する
- データ形式変換 AWS Glue のために Firehose に へのアクセスを許可する
- Firehose に Amazon S3 送信先へのアクセスを許可する
- Firehose に Apache Iceberg Tables 送信先へのアクセスを許可する
- Firehose に Amazon Redshift 送信先へのアクセスを許可する
- Firehose にパブリック OpenSearch サービスの送信先へのアクセスを許可する
- Firehose に のサービス OpenSearch 送信先へのアクセスを許可する VPC
- Firehose にパブリック OpenSearchサーバーレス送信先へのアクセスを許可する
- Firehose に OpenSearch のサーバーレス送信先へのアクセスを許可する VPC
- Firehose に Splunk 送信先へのアクセスを許可する
- での Splunk へのアクセス VPC
- Amazon Data Firehose を使用してVPCフローログを Splunk に取り込む
- Snowflake またはHTTPエンドポイントへのアクセス
- Snowflake 送信先へのアクセスを Firehose に許可する
- での Snowflake へのアクセス VPC
- Firehose にHTTPエンドポイントの送信先へのアクセスを許可する
- Amazon からのクロスアカウント配信 MSK
- Amazon S3 送信先へのクロスアカウント配信
- OpenSearch サービス宛先へのクロスアカウント配信
- タグを使用したアクセスへのコントロール
Firehose リソースへのアクセスを許可する
Firehose ストリームへのアクセスをアプリケーションに許可するには、この例のようなポリシーを使用します。Action
セクションを変更してアクセスを許可する個々のAPIオペレーションを調整するか、 を使用してすべてのオペレーションへのアクセスを許可できます"firehose:*"
。
{ "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
" ] } ] }
Firehose にプライベート Amazon MSKクラスターへのアクセスを許可する
Firehose ストリームのソースがプライベート Amazon MSKクラスターである場合は、この例のようなポリシーを使用します。
{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": [ "kafka:CreateVpcConnection" ], "Resource": "cluster-arn" } ] }
このようなポリシーをクラスターのリソースベースのポリシーに追加して、Firehose サービスプリンシパルに Amazon MSKCreateVpcConnection
APIオペレーションを呼び出すアクセス許可を付与する必要があります。
Firehose にIAMロールの引き受けを許可する
このセクションでは、Amazon Data Firehose にソースから宛先へのデータの取り込み、処理、配信へのアクセスを許可するアクセス許可とポリシーについて説明します。
注記
コンソールを使用して Firehose ストリームを作成し、新しいロールを作成するオプションを選択した場合、 は必要な信頼ポリシーをロールに AWS アタッチします。Amazon Data Firehose に既存のIAMロールを使用させたい場合、または自分でロールを作成する場合は、Amazon Data Firehose がロールを引き受けることができるように、次の信頼ポリシーをそのロールにアタッチします。置き換えるポリシーを編集する account-id
AWS アカウント ID を使用します。ロールの信頼関係を変更する方法については、「ロールの修正」を参照してください。
Amazon Data Firehose は、Firehose ストリームがデータを処理および配信するために必要なすべてのアクセス許可に IAMロールを使用します。Amazon Data Firehose がそのロールを引き受けることができるように、次の信頼ポリシーがそのロールにアタッチされていることを確認してください。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "account-id" } } }] }
このポリシーは、 sts:ExternalId
条件コンテキストキーを使用して、 AWS アカウントから発信された Amazon Data Firehose アクティビティのみがこのIAMロールを引き受けることができるようにします。IAM ロールの不正使用の防止の詳細については、IAM「 ユーザーガイド」の「混乱した代理問題」を参照してください。
Firehose ストリームのソースMSKとして Amazon を選択した場合は、指定された Amazon MSKクラスターからソースデータを取り込むアクセス許可を Amazon Data Firehose に付与する別のIAMロールを指定する必要があります。Amazon Data Firehose がそのロールを引き受けることができるように、次の信頼ポリシーがそのロールにアタッチされていることを確認してください。
{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": "sts:AssumeRole" } ] }
指定された Amazon MSKクラスターからソースデータを取り込むアクセス許可を Amazon Data Firehose に付与するこのロールが、次のアクセス許可を付与していることを確認します。
{ "Version": "2012-10-17", "Statement": [{ "Effect":"Allow", "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "CLUSTER-ARN" }, { "Effect":"Allow", "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "TOPIC-ARN" }] }
データ形式変換 AWS Glue のために Firehose に へのアクセスを許可する
Firehose ストリームがデータ形式の変換を実行する場合、Amazon Data Firehose は に保存されているテーブル定義を参照します AWS Glue。Amazon Data Firehose に必要な へのアクセスを許可するには AWS Glue、次のステートメントをポリシーに追加します。テーブルARNの を検索する方法については、AWS 「 Glue リソースの指定ARNs」を参照してください。
[{ "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTableVersion", "glue:GetTableVersions" ], "Resource": "
table-arn
" }, { "Sid": "GetSchemaVersion", "Effect": "Allow", "Action": [ "glue:GetSchemaVersion" ], "Resource": ["*"] }]
スキーマレジストリからスキーマを取得するための推奨ポリシーには、リソースの制限はありません。詳細については、「 AWS Glue デベロッパーガイド」のIAM「デシリアライザーの例」を参照してください。
Firehose に Amazon S3 送信先へのアクセスを許可する
Amazon S3 送信先を使用している場合、Amazon Data Firehose は S3 バケットにデータを配信し、オプションでデータ暗号化用に所有している AWS KMS キーを使用できます。エラーログ記録が有効になっている場合、Amazon Data Firehose は CloudWatch ロググループとストリームにもデータ配信エラーを送信します。Firehose ストリームを作成するときは、IAMロールが必要です。Amazon Data Firehose は、そのIAMロールを引き受け、指定されたバケット、キー、 CloudWatch ロググループとストリームへのアクセスを取得します。
次のアクセスポリシーを使用して、Amazon Data Firehose が S3 バケットと AWS KMS キーにアクセスできるようにします。S3 バケットを所有していない場合、Amazon S3 アクションのリストに s3:PutObjectAcl
を追加します。これにより、バケット所有者は Amazon Data Firehose によって配信されるオブジェクトにフルアクセスできるようになります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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
" ] } ] }
上記のポリシーには、Amazon Kinesis Data Streams へのアクセスを許可するステートメントも含まれています。データソースとして Kinesis Data Streams を使用しない場合は、そのステートメントを削除できます。Amazon をソースMSKとして使用する場合は、そのステートメントを以下に置き換えることができます。
{ "Sid":"", "Effect":"Allow", "Action":[ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:cluster/{{mskClusterName}}/{{clusterUUID}}" }, { "Sid":"", "Effect":"Allow", "Action":[ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:topic/{{mskClusterName}}/{{clusterUUID}}/{{mskTopicName}}" }, { "Sid":"", "Effect":"Allow", "Action":[ "kafka-cluster:DescribeGroup" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:group/{{mskClusterName}}/{{clusterUUID}}/*" }
他の AWS サービスがリソース AWS にアクセスできるようにする方法の詳細については、 IAM ユーザーガイドのAWS 「 サービスにアクセス許可を委任するロールの作成」を参照してください。
別のアカウントの Amazon S3 送信先への Amazon Data Firehose アクセスを許可する方法については、「」を参照してくださいAmazon S3 送信先へのクロスアカウント配信。
Firehose に Apache Iceberg Tables 送信先へのアクセスを許可する
を使用して Firehose ストリームと Apache Iceberg テーブルを作成する前に、IAMロールが必要です AWS Glue。ポリシーとIAMロールを作成するには、次の手順を実行します。Firehose はこのIAMロールを引き受け、必要なアクションを実行します。
-
にサインイン AWS Management Console し、 でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/
。 -
ポリシーを作成し、ポリシーエディタJSONで を選択します。
-
読み取り/書き込みアクセス許可、データカタログのテーブルを更新するアクセス許可など、Amazon S3 に許可を付与する次のインラインポリシーを追加します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetDatabase", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:
<region>:<aws-account-id>
:catalog", "arn:aws:glue:<region>:<aws-account-id>
:database/*", "arn:aws:glue:<region>:<aws-account-id>
:table/*/*" ] }, { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:<region>:<aws-account-id>
:stream/<stream-name>
" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:<region>:<aws-account-id>
:key/<key-id>
" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket
/prefix*" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<aws-account-id>
:log-group:<log-group-name>
:log-stream:<log-stream-name>
" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:<region>:<aws-account-id>
:function:<function-name>:<function-version>
" ] } ] }このポリシーには、Amazon Kinesis Data Streams へのアクセス、Lambda 関数の呼び出し、およびKMSキーへのアクセスを許可するステートメントがあります。これらのリソースを使用しない場合は、それぞれのステートメントを削除できます。
エラーログ記録が有効になっている場合、Firehose は CloudWatch ロググループとストリームにもデータ配信エラーを送信します。そのためには、ロググループとログストリーム名を設定する必要があります。ロググループとログストリーム名については、「」を参照してください CloudWatch ログを使用して Amazon Data Firehose をモニタリングする。
-
インラインポリシーで、 を置き換えます。
amzn-s3-demo-bucket
Amazon S3 バケット名、 aws-account-id有効な番号の AWS アカウント リージョン、リソースのリージョン。注記
このロールは、データカタログ内のすべてのデータベースとテーブルにアクセス許可を付与します。必要に応じて、特定のテーブルとデータベースにのみアクセス許可を付与できます。
-
ポリシーを作成したら、IAMコンソール
を開き、 を信頼されたエンティティタイプ AWS のサービスとして IAM ロールを作成します。 -
サービスまたはユースケース の場合は、Kinesis を選択します。ユースケースでは、Kinesis Firehose を選択します。
-
次のページで、前のステップで作成したポリシーを選択して、このロールにアタッチします。レビューページには、このロールを引き受ける権限を Firehose サービスに付与する信頼ポリシーが既にこのロールにアタッチされています。ロールを作成すると、Amazon Data Firehose はロールを引き受けて、 および S3 バケットで AWS Glue 必要なオペレーションを実行できます。
Firehose に Amazon Redshift 送信先へのアクセスを許可する
Amazon Redshift 送信先を使用する際に Amazon Data Firehose へのアクセスを許可する場合は、以下を参照してください。
トピック
IAM ロールとアクセスポリシー
Amazon Redshift 送信先を使用している場合、Amazon Data Firehose は中間ロケーションとして S3 バケットにデータを配信します。必要に応じて、所有している AWS KMS キーをデータ暗号化に使用できます。次に、Amazon Data Firehose は S3 バケットから Amazon Redshift プロビジョニングクラスターまたは Amazon Redshift Serverless ワークグループにデータをロードします。エラーログ記録が有効になっている場合、Amazon Data Firehose は CloudWatch ロググループとストリームにもデータ配信エラーを送信します。Amazon Data Firehose は、指定された Amazon Redshift ユーザー名とパスワードを使用してプロビジョニングされたクラスターまたは Amazon Redshift Serverless ワークグループにアクセスし、IAMロールを使用して指定されたバケット、キー、 CloudWatch ロググループ、ストリームにアクセスします。Firehose ストリームを作成するときは、IAMロールが必要です。
次のアクセスポリシーを使用して、Amazon Data Firehose が S3 バケットと AWS KMS キーにアクセスできるようにします。S3 バケットを所有していない場合は、Amazon Data Firehose によって配信されるオブジェクトへの完全なアクセスをバケット所有者に付与する Amazon S3 アクションのリストs3:PutObjectAcl
に を追加します。このポリシーには、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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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 にアクセスできるようにする方法の詳細については、 IAM ユーザーガイドのAWS 「 サービスにアクセス許可を委任するロールの作成」を参照してください。
VPC Amazon Redshift でプロビジョニングされたクラスターまたは Amazon Redshift Serverless ワークグループへのアクセス
Amazon Redshift でプロビジョニングされたクラスターまたは Amazon Redshift Serverless ワークグループが仮想プライベートクラウド (VPC) にある場合は、パブリック IP アドレスを使用してパブリックにアクセス可能である必要があります。また、Amazon Data Firehose の IP アドレスのブロックを解除して、Amazon Redshift でプロビジョニングされたクラスターまたは Amazon Redshift Serverless ワークグループへのアクセスを Amazon Data Firehose に許可します。Amazon Data Firehose は現在、使用可能なリージョンごとに 1 つのCIDRブロックを使用しています。
リージョン | CIDR ブロック |
---|---|
米国東部(オハイオ) |
|
米国東部 (バージニア北部) | 52.70.63.192/27 |
米国西部 (北カリフォルニア) | 13.57.135.192/27 |
米国西部 (オレゴン) | 52.89.255.224/27 |
AWS GovCloud (米国東部) | 18.253.138.96/27 |
AWS GovCloud (米国西部) | 52.61.204.160/27 |
カナダ (中部) | 35.183.92.128/27 |
カナダ西部 (カルガリー) | 40.176.98.192/27 |
アジアパシフィック (香港) | 18.162.221.32/27 |
アジアパシフィック (ムンバイ) | 13.232.67.32/27 |
アジアパシフィック (ハイデラバード) | 18.60.192.128/27 |
アジアパシフィック (ソウル) | 13.209.1.64/27 |
アジアパシフィック (シンガポール) | 13.228.64.192/27 |
アジアパシフィック (シドニー) | 13.210.67.224/27 |
アジアパシフィック (ジャカルタ) | 108.136.221.64/27 |
アジアパシフィック (東京) | 13.113.196.224/27 |
アジアパシフィック (大阪) | 13.208.177.192/27 |
中国 (北京) | 52.81.151.32/27 |
中国 (寧夏) | 161.189.23.64/27 |
欧州 (チューリッヒ) | 16.62.183.32/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 |
中東 (UAE) | 3.28.159.32/27 |
イスラエル (テルアビブ) | 51.16.102.0/27 |
アジアパシフィック (メルボルン) | 16.50.161.128/27 |
アジアパシフィック (マレーシア) | 43.216.58.0/27 |
IP アドレスのブロック解除方法の詳細については、Amazon Redshift 入門ガイドの「クラスターへのアクセスの許可」を参照してください。
Firehose にパブリック OpenSearch サービスの送信先へのアクセスを許可する
OpenSearch サービス送信先を使用している場合、Amazon Data Firehose はデータを OpenSearch サービスクラスターに配信し、障害が発生したドキュメントやすべてのドキュメントを S3 バケットに同時にバックアップします。エラーログ記録が有効になっている場合、Amazon Data Firehose はロググループとストリームにも CloudWatchデータ配信エラーを送信します。Amazon Data Firehose は、 IAMロールを使用して、指定された OpenSearchサービスドメイン、S3 バケット、 AWS KMS キー、 CloudWatch ロググループ、およびストリームにアクセスします。Firehose ストリームを作成するときは、IAMロールが必要です。
次のアクセスポリシーを使用して、Amazon Data Firehose が S3 バケット、 OpenSearchサービスドメイン、および AWS KMS キーにアクセスできるようにします。S3 バケットを所有していない場合は、Amazon Data Firehose によって配信されるオブジェクトへの完全なアクセスをバケット所有者に付与する Amazon S3 アクションのリストs3:PutObjectAcl
に を追加します。このポリシーには、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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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", "arn:aws:es:region
:account-id
:domain/domain-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": [ "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 にアクセスできるようにする方法の詳細については、 IAM ユーザーガイドのAWS 「 サービスにアクセス許可を委任するロールの作成」を参照してください。
別のアカウントの OpenSearch Service クラスターへの Amazon Data Firehose アクセスを許可する方法については、「」を参照してください OpenSearch サービス宛先へのクロスアカウント配信。
Firehose に のサービス OpenSearch 送信先へのアクセスを許可する VPC
Service OpenSearch ドメインが にある場合はVPC、前のセクションで説明したアクセス許可を Amazon Data Firehose に付与してください。さらに、Amazon Data Firehose が OpenSearch サービスドメインの にアクセスできるようにするには、以下のアクセス許可を付与する必要がありますVPC。
-
ec2:DescribeVpcs
-
ec2:DescribeVpcAttribute
-
ec2:DescribeSubnets
-
ec2:DescribeSecurityGroups
-
ec2:DescribeNetworkInterfaces
-
ec2:CreateNetworkInterface
-
ec2:CreateNetworkInterfacePermission
-
ec2:DeleteNetworkInterface
重要
Firehose ストリームを作成した後は、これらのアクセス許可を取り消しないでください。これらのアクセス許可を取り消すと、 OpenSearch サービスが のクエリまたは更新を試みるたびに、Firehose ストリームが劣化するか、サービスドメインへのデータの配信が停止しますENIs。
重要
プライベート で送信先にデータを配信するためのサブネットを指定する場合はVPC、選択したサブネットに十分な数の空き IP アドレスがあることを確認してください。指定されたサブネットに使用可能な空き IP アドレスがない場合、Firehose はプライベート のデータ配信ENIs用に を作成または追加できずVPC、配信は低下または失敗します。
Firehose ストリームを作成または更新するときは、Firehose が OpenSearch Service ドメインにデータを送信するときに使用するセキュリティグループを指定します。 OpenSearch サービスドメインが使用するのと同じセキュリティグループを使用するか、別のセキュリティグループを使用できます。別のセキュリティグループを指定する場合は、サービスドメインのセキュリティグループへの OpenSearchアウトバウンドHTTPSトラフィックが許可されていることを確認してください。また、Firehose ストリームを設定したときに指定したセキュリティグループからのHTTPSトラフィックが OpenSearch サービスドメインのセキュリティグループで許可されていることを確認してください。Firehose ストリームと OpenSearch サービスドメインの両方に同じセキュリティグループを使用する場合は、セキュリティグループのインバウンドルールでHTTPSトラフィックが許可されていることを確認してください。セキュリティグループルールの詳細については、Amazon VPCドキュメントの「セキュリティグループルール」を参照してください。
Firehose にパブリック OpenSearchサーバーレス送信先へのアクセスを許可する
OpenSearch Serverless 送信先を使用している場合、Amazon Data Firehose は OpenSearch Serverless コレクションにデータを配信し、失敗したドキュメントやすべてのドキュメントを同時に S3 バケットにバックアップします。エラーログ記録が有効になっている場合、Amazon Data Firehose は CloudWatch ロググループとストリームにもデータ配信エラーを送信します。Amazon Data Firehose は、 IAMロールを使用して、指定された OpenSearch Serverless コレクション、S3 バケット、 AWS KMS キー、 CloudWatch ロググループ、ストリームにアクセスします。Firehose ストリームを作成するときは、IAMロールが必要です。
次のアクセスポリシーを使用して、Amazon Data Firehose が S3 バケット、 OpenSearchサーバーレスドメイン、および AWS KMS キーにアクセスできるようにします。S3 バケットを所有していない場合は、Amazon Data Firehose によって配信されるオブジェクトへの完全なアクセスをバケット所有者に付与する Amazon S3 アクションのリストs3:PutObjectAcl
に を追加します。このポリシーには、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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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
" ] }, { "Effect": "Allow", "Action": "aoss:APIAccessAll", "Resource": "arn:aws:aoss:region
:account-id
:collection/collection-id
" } ] }
上記のポリシーに加えて、データアクセスポリシーで以下の最小アクセス許可を割り当てるように Amazon Data Firehose を設定する必要があります。
[ { "Rules":[ { "ResourceType":"index", "Resource":[ "index/target-collection/target-index" ], "Permission":[ "aoss:WriteDocument", "aoss:UpdateIndex", "aoss:CreateIndex" ] } ], "Principal":[ "arn:aws:sts::
account-id
:assumed-role/firehose-delivery-role-name
/*" ] } ]
他の AWS サービスがリソース AWS にアクセスできるようにする方法の詳細については、 IAM ユーザーガイドの「アクセス許可を AWS サービスに委任するロールの作成」を参照してください。
Firehose に OpenSearch のサーバーレス送信先へのアクセスを許可する VPC
OpenSearch Serverless コレクションが にある場合はVPC、前のセクションで説明したアクセス許可を Amazon Data Firehose に付与してください。さらに、 OpenSearch Serverless コレクションの にアクセスできるようにするには、Amazon Data Firehose に次のアクセス許可を付与する必要がありますVPC。
-
ec2:DescribeVpcs
-
ec2:DescribeVpcAttribute
-
ec2:DescribeSubnets
-
ec2:DescribeSecurityGroups
-
ec2:DescribeNetworkInterfaces
-
ec2:CreateNetworkInterface
-
ec2:CreateNetworkInterfacePermission
-
ec2:DeleteNetworkInterface
重要
Firehose ストリームを作成した後は、これらのアクセス許可を取り消しないでください。これらのアクセス許可を取り消すと、 OpenSearch サービスが のクエリまたは更新を試みるたびに、Firehose ストリームが劣化するか、サービスドメインへのデータの配信が停止しますENIs。
重要
プライベート で送信先にデータを配信するためのサブネットを指定する場合はVPC、選択したサブネットに十分な数の空き IP アドレスがあることを確認してください。指定されたサブネットに使用可能な空き IP アドレスがない場合、Firehose はプライベート のデータ配信ENIs用に を作成または追加できずVPC、配信は低下または失敗します。
Firehose ストリームを作成または更新するときは、Firehose が OpenSearch Serverless コレクションにデータを送信するときに使用するセキュリティグループを指定します。 OpenSearch Serverless コレクションが使用するのと同じセキュリティグループを使用するか、別のセキュリティグループを使用できます。別のセキュリティグループを指定する場合は、 OpenSearch サーバーレスコレクションのセキュリティグループへのアウトバウンドHTTPSトラフィックが許可されていることを確認してください。また、 OpenSearchServerless コレクションのセキュリティグループが、Firehose ストリームの設定時に指定したセキュリティグループからのHTTPSトラフィックを許可していることを確認します。Firehose ストリームと OpenSearch Serverless コレクションの両方に同じセキュリティグループを使用する場合は、セキュリティグループのインバウンドルールでHTTPSトラフィックが許可されていることを確認してください。セキュリティグループルールの詳細については、Amazon VPCドキュメントの「セキュリティグループルール」を参照してください。
Firehose に Splunk 送信先へのアクセスを許可する
Splunk 送信先を使用している場合、Amazon Data Firehose は Splunk HTTP Event Collector (HEC) エンドポイントにデータを配信します。また、そのデータを指定した Amazon S3 バケットにバックアップし、オプションで Amazon S3 サーバー側の暗号化用に所有している AWS KMS キーを使用することもできます。エラーログ記録が有効になっている場合、Firehose はログストリームに CloudWatchデータ配信エラーを送信します。データ変換 AWS Lambda に を使用することもできます。
AWS ロードバランサーを使用する場合は、それが Classic Load Balancer または Application Load Balancer であることを確認します。また、Classic Load Balancer では Cookie の有効期限が無効になっており、Application Load Balancer では有効期限が最大 (7 日間) に設定されています。これを行う方法の詳細については、「Classic Load Balancer または Application Load Balancer の持続時間ベースのセッションのスティクネス」を参照してください。
Firehose ストリームを作成するときは、IAMロールが必要です。Firehose は、そのIAMロールを引き受け、指定されたバケット、キー、 CloudWatch ロググループとストリームへのアクセスを取得します。
次のアクセスポリシーを使用して、Amazon Data Firehose が S3 バケットにアクセスできるようにします。S3 バケットを所有していない場合は、Amazon Data Firehose によって配信されるオブジェクトへの完全なアクセスをバケット所有者に付与する Amazon S3 アクションのリストs3:PutObjectAcl
に を追加します。このポリシーは、エラーログ CloudWatch 記録用の およびデータ変換 AWS Lambda 用の へのアクセスを Amazon Data Firehose に付与します。このポリシーには、Amazon Kinesis Data Streams へのアクセスを許可するステートメントも含まれています。データソースとして Kinesis Data Streams を使用しない場合は、そのステートメントを削除できます。Amazon Data Firehose は Splunk へのアクセスIAMに を使用しません。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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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 にアクセスできるようにする方法の詳細については、 IAM ユーザーガイドの「アクセス許可を AWS サービスに委任するロールの作成」を参照してください。
での Splunk へのアクセス VPC
Splunk プラットフォームが にある場合はVPC、パブリック IP アドレスを使用してパブリックにアクセスできなければなりません。また、Amazon Data Firehose IP アドレスのブロックを解除して、Amazon Data Firehose に Splunk プラットフォームへのアクセスを許可します。Amazon Data Firehose は現在、次のCIDRブロックを使用しています。
リージョン | CIDR ブロック |
---|---|
米国東部(オハイオ) |
|
米国東部 (バージニア北部) | 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 |
AWS GovCloud (米国東部) | 18.253.138.192/26 |
AWS GovCloud (米国西部) | 52.61.204.192/26 |
アジアパシフィック (香港) | 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 |
カナダ西部 (カルガリー) | 40.176.98.128/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 |
中国 (北京) | 52.81.151.64/26 |
中国 (寧夏) | 161.189.23.128/26 |
アジアパシフィック (ジャカルタ) | 108.136.221.128/26 |
中東 (UAE) | 3.28.159.64/26 |
イスラエル (テルアビブ) | 51.16.102.64/26 |
欧州 (チューリッヒ) | 16.62.183.64/26 |
アジアパシフィック (ハイデラバード) | 18.60.192.192/26 |
アジアパシフィック (メルボルン) | 16.50.161.192/26 |
アジアパシフィック (マレーシア) | 43.216.44.192/26 |
Amazon Data Firehose を使用してVPCフローログを Splunk に取り込む
VPC フローログサブスクリプションを作成し、Firehose に発行し、VPCフローログをサポートされている送信先に送信する方法の詳細については、「Amazon Data Firehose を使用して Splunk にVPCフローログを取り込みます
Snowflake またはHTTPエンドポイントへのアクセス
送信先がHTTPエンドポイントまたは Snowflake パブリッククラスターである場合、Amazon Data Firehose に固有の AWS IP アドレス範囲のサブセットはありません。
Firehose をパブリック Snowflake クラスターの許可リスト、またはパブリックHTTPまたはHTTPSエンドポイントに追加するには、現在の AWS IP アドレス範囲をすべて受信ルールに追加します。
注記
通知は、関連するトピックと同じ AWS リージョンの IP アドレスから取得されるとは限りません。すべてのリージョンの AWS IP アドレス範囲を含める必要があります。
Snowflake 送信先へのアクセスを Firehose に許可する
Snowflake を送信先として使用すると、Firehose は Snowflake アカウント を使用して Snowflake アカウントにデータを配信しますURL。また、指定した Amazon Simple Storage Service バケットにエラーデータをバックアップし、オプションで Amazon S3 サーバー側の暗号化用に所有している AWS Key Management Service キーを使用することもできます。エラーログ記録が有効になっている場合、Firehose はデータ配信エラーを CloudWatch Logs ストリームに送信します。
Firehose ストリームを作成する前に、IAMロールが必要です。Firehose は、そのIAMロールを引き受け、指定されたバケット、キー、および CloudWatch ロググループとストリームへのアクセスを取得します。次のアクセスポリシーを使用して、Firehose が S3 バケットにアクセスできるようにします。S3 バケットを所有していない場合は、Amazon Simple Storage Service アクションのリストs3:PutObjectAcl
に を追加します。これにより、バケット所有者は Firehose によって配信されるオブジェクトにフルアクセスできるようになります。このポリシーは、エラーログ記録 CloudWatch のために Firehose に へのアクセスも許可します。このポリシーには、Amazon Kinesis Data Streams へのアクセスを許可するステートメントも含まれています。データソースとして Kinesis Data Streams を使用しない場合は、そのステートメントを削除できます。Firehose は Snowflake へのアクセスIAMに を使用しません。Snowflake へのアクセスには、プライベートクラスターの場合は Snowflake アカウントの URL と PrivateLink Vpce Id を使用します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket
/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:*" ] } ] }
他の AWS サービスが AWS リソースにアクセスできるようにする方法の詳細については、 IAM ユーザーガイドのAWS 「 サービスにアクセス許可を委任するロールの作成」を参照してください。
での Snowflake へのアクセス VPC
Snowflake クラスターがプライベートリンクが有効になっている場合、Firehose は VPC Endpoints を使用して、パブリックインターネットを経由せずにプライベートクラスターにデータを配信します。そのためには、Snowflake ネットワークルールを作成してAwsVpceIds
、 AWS リージョン クラスターが にある次のものからの進入を許可します。詳細については、「Snowflake ユーザーガイド」の「ネットワークルールの作成
VPC クラスターが属するリージョンに基づいて使用するエンドポイント ID | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AWS リージョン | VPCE IDs |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
米国東部 (オハイオ) |
vpce-0d96cafcd96a50aeb vpce-0cec34343d48f537b |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
米国東部 (バージニア北部) |
vpce-0b4d7e8478e141ba8 vpce-0b75cd681fb507352 vpce-01c03e63820ec00d8 vpce-0c2cfc51dc2882422 vpce-06ca862f019e4e056 vpce-020cda0cfa63f8d1c vpce-0b80504a1a783cd70 vpce-0289b9ff0b5259a96 vpce-0d7add8628bd69a12 vpce-02bfb5966cc59b2af vpce-09e707674af878bf2 vpce-049b52e96cc1a2165 vpce-0bb6c7b7a8a86cdbb vpce-03b22d599f51e80f3 vpce-01d60dc60fc106fe1 vpce-0186d20a4b24ecbef vpce-0533906401a36e416 vpce-05111fb13d396710e vpce-0694613f4fbd6f514 vpce-09b21cb25fe4cc4f4 vpce-06029c3550e4d2399 vpce-00961862a21b033da vpce-01620b9ae33273587 vpce-078cf4ec226880ac9 vpce-0d711bf076ce56381 vpce-066b7e13cbfca6f6e vpce-0674541252d9ccc26 vpce-03540b88dedb4b000 vpce-0b1828e79ad394b95 vpce-0dc0e6f001fb1a60d vpce-0d8f82e71a244098a vpce-00e374d9e3f1af5ce vpce-0c1e3d6631ddb442f |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
米国西部 (オレゴン) |
vpce-0f60f72da4cd1e4e7 vpce-0c60d21eb8b1669fd vpce-01c4e3e29afdafbef vpce-0cc6bf2a88da139de vpce-0797e08e169e50662 vpce-033cbe480381b5c0e vpce-00debbdd8f9eb10a5 vpce-08ec2f386c809e889 vpce-0856d14310857b545 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
欧州 (フランクフルト) |
vpce-068dbb7d71c9460fb vpce-0a7a7f095942d4ec9 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
欧州 (アイルランド) |
vpce-06857e59c005a6276 vpce-04390f4f8778b75f2 vpce-011fd2b1f0aa172fd |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
アジアパシフィック (東京) |
vpce-06369e5258144e68a vpce-0f2363cdb8926fbe8 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
アジアパシフィック (シンガポール) |
vpce-049cd46cce7a12d52 vpce-0e8965a1a4bdb8941 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
アジアパシフィック (ソウル) |
vpce-0aa444d9001e1faa1 vpce-04a49d4dcfd02b884 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
アジアパシフィック (シドニー) |
vpce-048a60a182c52be63 vpce-03c19949787fd1859 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
アジアパシフィック (ムンバイ) |
vpce-0d68cb822f6f0db68 vpce-0517d32692ffcbde2 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
欧州 (ロンドン) |
vpce-0fd1874a0ba3b9374 vpce-08091b1a85e206029 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
南米(サンパウロ) |
vpce-065169b8144e4f12e vpce-0493699f0e5762d63 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
カナダ (中部) |
vpce-07e6ed81689d5271f vpce-0f53239730541394c |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
欧州 (パリ) |
vpce-09419680077e6488a vpce-0ea81ba2c08140c14 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
アジアパシフィック (大阪) |
vpce-0a9f003e6a7e38c05 vpce-02886510b897b1c5a |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
欧州 (ストックホルム) |
vpce-0d96410833219025a vpce-060a32f9a75ba969f |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
アジアパシフィック (ジャカルタ) |
vpce-00add4b9a25e5c649 vpce-004ae2de34338a856 |
Firehose にHTTPエンドポイントの送信先へのアクセスを許可する
Amazon Data Firehose を使用して、任意のHTTPエンドポイントの送信先にデータを配信できます。Amazon Data Firehose は、指定した Amazon S3 バケットにそのデータをバックアップし、オプションで AWS KMS Amazon S3 サーバー側の暗号化用に所有しているキーを使用することもできます。エラーログ記録が有効になっている場合、Amazon Data Firehose は CloudWatch ログストリームにデータ配信エラーを送信します。データ変換 AWS Lambda に を使用することもできます。
Firehose ストリームを作成するときは、IAMロールが必要です。Amazon Data Firehose は、そのIAMロールを引き受け、指定されたバケット、キー、 CloudWatch ロググループとストリームへのアクセスを取得します。
次のアクセスポリシーを使用して、Amazon Data Firehose がデータバックアップ用に指定した S3 バケットにアクセスできるようにします。S3 バケットを所有していない場合は、Amazon Data Firehose によって配信されるオブジェクトへの完全なアクセスをバケット所有者に付与する Amazon S3 アクションのリストs3:PutObjectAcl
に を追加します。このポリシーは、エラーログ CloudWatch 記録用の およびデータ変換 AWS Lambda 用の へのアクセスを Amazon Data Firehose に付与します。このポリシーには、Amazon Kinesis Data Streams へのアクセスを許可するステートメントも含まれています。データソースとして Kinesis Data Streams を使用しない場合は、そのステートメントを削除できます。
重要
Amazon Data Firehose は、Datadog、Dynatrace、 LogicMonitorMongoDB、New Relic、Splunk、Sumo Logic など、サポートされているサードパーティーサービスプロバイダーが所有するHTTPエンドポイントの送信先にアクセスIAMするために を使用しません。サポートされているサードパーティーサービスプロバイダーが所有する指定されたHTTPエンドポイント送信先にアクセスするには、そのサービスプロバイダーに連絡して、Amazon 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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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 にアクセスできるようにする方法の詳細については、 IAM ユーザーガイドのAWS 「 サービスにアクセス許可を委任するロールの作成」を参照してください。
重要
現在、Amazon Data Firehose は のHTTPエンドポイントへのデータ配信NOTをサポートしていますVPC。
Amazon からのクロスアカウント配信 MSK
Firehose アカウント (アカウント B など) から Firehose ストリームを作成し、ソースが別の AWS アカウント (アカウント A) のMSKクラスターである場合は、次の設定が必要です。
アカウント A:
Amazon MSKコンソールで、プロビジョニングされたクラスターを選択し、プロパティ を選択します。
ネットワーク設定 で、編集 を選択し、マルチVPC接続 をオンにします。
[セキュリティ設定] で [クラスターポリシーの編集] を選択します。
クラスターにまだポリシーが設定されていない場合は、[Firehose サービスプリンシパルを含める] と [Firehose のクロスアカウント S3 配信を有効にする] にチェックを入れます。 AWS Management Console は、適切なアクセス許可を持つポリシーを自動的に生成します。
-
クラスターに既にポリシーが設定されている場合は、既存のポリシーに次のアクセス許可を追加します。
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
arn
:role/mskaasTestDeliveryRole" }, "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "arn:aws:kafka:us-east-1:arn
:cluster/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20" // ARN of the cluster }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::arn
:role/mskaasTestDeliveryRole" }, "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "arn:aws:kafka:us-east-1:arn
:topic/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*"//topic of the cluster }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::233450236687:role/mskaasTestDeliveryRole" }, "Action": "kafka-cluster:DescribeGroup", "Resource": "arn:aws:kafka:us-east-1:arn
:group/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, }
[AWS プリンシパル] にアカウント B のプリンシパル ID を入力します。
トピック で、Firehose ストリームがデータを取り込む元の Apache Kafka トピックを指定します。Firehose ストリームが作成されると、このトピックを更新することはできません。
[Save changes] (変更の保存) を選択します。
アカウント B:
Firehose コンソールで、アカウント B を使用して Firehose ストリームを作成するを選択します。
[ソース] で、[Amazon Managed Streaming for Apache Kafka] を選択します。
ソース設定 の Amazon Managed Streaming for Apache Kafka クラスター で、Amazon MSKクラスターARNの をアカウント A に入力します。
トピック で、Firehose ストリームがデータを取り込む元の Apache Kafka トピックを指定します。Firehose ストリームが作成されると、このトピックを更新することはできません。
-
配信ストリーム名で、Firehose ストリームの名前を指定します。
アカウント B で Firehose ストリームを作成するときは、設定したトピックのクロスアカウント Amazon MSKクラスターへの「読み取り」アクセスを Firehose ストリームに付与するIAMロール ( を使用する場合、デフォルトで作成 AWS Management Console) が必要です。
AWS Management Consoleでの設定内容は以下のとおりです。
{ "Sid": "", "Effect": "Allow", "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "arn:aws:kafka:us-east-1:
arn
:cluster/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, { "Sid": "", "Effect": "Allow", "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "arn:aws:kafka:us-east-1:arn
:topic/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/mskaas_test_topic" //topic of the cluster }, { "Sid": "", "Effect": "Allow", "Action": [ "kafka-cluster:DescribeGroup" ], "Resource": "arn:aws:kafka:us-east-1:arn
:group/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, }
次に、レコード変換とレコード形式の変換を設定するオプションのステップを実行できます。詳細については、「(オプション) レコード変換と形式変換を設定する」を参照してください。
Amazon S3 送信先へのクロスアカウント配信
AWS CLI または Amazon Data Firehose を使用して、1 つの AWS アカウントに Firehose ストリームAPIsを作成し、別のアカウントに Amazon S3 の送信先を設定できます。次の手順は、アカウント A が所有する Firehose ストリームを設定して、アカウント B が所有する Amazon S3 バケットにデータを配信する例を示しています。
-
Amazon S3 送信先 へのアクセスを Firehose に許可する の手順を使用して、アカウント A の下にIAMロールを作成します。
注記
この場合、アクセスポリシーで指定した Amazon S3 バケットはアカウント B が所有しています。アクセスポリシーの Amazon S3 アクションのリスト
s3:PutObjectAcl
に を追加し、Amazon Data Firehose によって配信されるオブジェクトへのフルアクセスをアカウント B に付与します。このアクセス許可は、クロスアカウント配信に必要です。Amazon Data Firehose は、リクエストのx-amz-acl「」ヘッダーをbucket-owner-full-control「」に設定します。 -
以前に作成した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:::amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] } ] } -
ステップ 1 で作成したIAMロールを使用して、アカウント A に Firehose ストリームを作成します。
OpenSearch サービス宛先へのクロスアカウント配信
AWS CLI または Amazon Data Firehose を使用して、ある AWS アカウントで Firehose ストリームAPIsを作成し、別のアカウントの OpenSearch サービス送信先を指定することができます。次の手順は、アカウント A で Firehose ストリームを作成し、アカウント B が所有する OpenSearch サービス宛先にデータを配信するように設定する方法の例を示しています。
-
で説明されているステップを使用して、アカウント A の下にIAMロールを作成しますFirehose にパブリック OpenSearch サービスの送信先へのアクセスを許可する。
-
前のステップで作成したIAMロールからのアクセスを許可するには、アカウント B に OpenSearch サービスポリシーを作成します。以下に例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", "arn:aws:es:us-east-1:Account-B-ID
:domain/cross-account-cluster/" ] } ] } -
ステップ 1 で作成したIAMロールを使用して、アカウント A に Firehose ストリームを作成します。Firehose ストリームを作成するときは、 AWS CLI または Amazon Data Firehose を使用してAPIs、
DomainARN
for OpenSearch Service ではなくClusterEndpoint
フィールドを指定します。
注記
ある AWS アカウントで Firehose ストリームを別のアカウントの OpenSearch サービス送信先で作成するには、 AWS CLI または Amazon Data Firehose を使用する必要がありますAPIs。を使用して、この種のクロスアカウント設定 AWS Management Console を作成することはできません。
タグを使用したアクセスへのコントロール
IAM ポリシーのオプションCondition
要素 (またはCondition
ブロック ) を使用して、タグキーと値に基づいて Amazon Data Firehose オペレーションへのアクセスを微調整できます。以下のサブセクションでは、さまざまな Amazon Data Firehose オペレーションに対してこれを行う方法について説明します。Condition
要素の使用と、その中で使用できる演算子の詳細については、IAMJSON「ポリシー要素: 条件」を参照してください。
CreateDeliveryStream
CreateDeliveryStream
オペレーションでは、aws:RequestTag
条件キーを使用します。次の例では、MyKey
と MyValue
はキー、およびタグの対応する値を表しています。詳細については、「タグの基本を理解する」を参照してください
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "firehose:CreateDeliveryStream", "firehose:TagDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/MyKey": "MyValue" } } }] }
TagDeliveryStream
TagDeliveryStream
オペレーションでは、aws:TagKeys
条件キーを使用します。次の例では、MyKey
はサンプルタグキーです。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:TagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ] }
UntagDeliveryStream
UntagDeliveryStream
オペレーションでは、aws:TagKeys
条件キーを使用します。次の例では、MyKey
はサンプルタグキーです。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:UntagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ] }
ListDeliveryStreams
ListDeliveryStreams
でタグベースのアクセスコントロールを使用することはできません。
その他のオペレーション
CreateDeliveryStream
、、TagDeliveryStream
、UntagDeliveryStream
および 以外のすべての Firehose オペレーションではListDeliveryStreams
、 aws:RequestTag
条件キーを使用します。次の例では、MyKey
と MyValue
はキー、およびタグの対応する値を表しています。
ListDeliveryStreams
、 firehose:ResourceTag
条件キーを使用して、その Firehose ストリームのタグに基づいてアクセスを制御します。
次の例では、MyKey
と MyValue
はキー、およびタグの対応する値を表しています。このポリシーは、 の値MyKey
を持つ という名前のタグを持つ Data Firehose ストリームにのみ適用されますMyValue
。リソースタグに基づくアクセスの制御の詳細については、IAM「 ユーザーガイド」の「タグを使用した AWS リソースへのアクセスの制御」を参照してください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "firehose:DescribeDeliveryStream", "Resource": "*", "Condition": { "StringEquals": { "firehose:ResourceTag/MyKey": "MyValue" } } } ] }