本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon Data Firehose 控制存取
下列各節說明如何控制對 Amazon Data Firehose 資源的存取。他們涵蓋的資訊包括如何授予應用程式存取權,以便將資料傳送到 Firehose 串流。它們也說明如何授予 Amazon Data Firehose 對 Amazon Simple Storage Service (Amazon S3) 儲存貯體、Amazon Redshift 叢集或 Amazon OpenSearch Service 叢集的存取權,以及如果您使用 Datadog、Dynatrace、MongoDB LogicMonitor、New Relic、Splunk 或 Sumo Logic 做為目的地時所需的存取許可。最後,您可以在本主題指南中找到如何設定 Amazon Data Firehose,以便將資料交付到屬於不同 AWS 帳戶的目的地。管理所有這些存取形式的技術是 AWS Identity and Access Management (IAM)。如需 IAM 的詳細資訊,請參閱什麼是 IAM?。
目錄
- 授予 Firehose 資源的存取權
- 授予 Firehose 存取您的私有 Amazon MSK叢集
- 允許 Firehose 擔任 IAM角色
- 將 Firehose 存取權授予 AWS Glue 以進行資料格式轉換
- 授予 Firehose 對 Amazon S3 目的地的存取權
- 授予 Firehose 對 Amazon S3 資料表的存取權
- 授予 Firehose 對 Apache Iceberg 資料表目的地的存取權
- 授予 Firehose 對 Amazon Redshift 目的地的存取權
- 授予 Firehose 對公有 OpenSearch 服務目的地的存取權
- 授予 Firehose 對 中 OpenSearch 服務目的地的存取權 VPC
- 授予 Firehose 對公 OpenSearch有無伺服器目的地的存取權
- 授予 Firehose 對 OpenSearch中無伺服器目的地的存取權 VPC
- 授予 Firehose 存取 Splunk 目的地的權限
- 在 中存取 Splunk VPC
- 使用 Amazon Data Firehose 將VPC流程日誌擷取至 Splunk
- 存取 Snowflake 或HTTP端點
- 授予 Firehose 對 Snowflake 目的地的存取權
- 在 中存取 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 使用者指南中的混淆代理人問題。
如果您選擇 Amazon MSK做為 Firehose 串流的來源,您必須指定另一個IAM角色,授予 Amazon Data Firehose 從指定 Amazon MSK叢集擷取來源資料的許可。請確定下列信任政策已連接至該角色,以便 Amazon Data Firehose 可以擔任該角色。
{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": "sts:AssumeRole" } ] }
請確定此角色授予 Amazon Data Firehose 從指定 Amazon MSK叢集擷取來源資料的許可,並授予下列許可:
{ "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" }] }
將 Firehose 存取權授予 AWS Glue 以進行資料格式轉換
如果您的 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 儲存貯體,請新增 s3:PutObjectAcl
至 Amazon S3 動作清單。這會授予儲存貯體擁有者完整存取 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 的陳述式。如果您不使用 Amazon 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 Data Firehose 對另一個帳戶中 Amazon S3 目的地的存取權,請參閱 跨帳戶交付至 Amazon S3 目的地。
授予 Firehose 對 Amazon S3 資料表的存取權
您必須先有 IAM角色,才能建立 Firehose 串流。使用下列步驟來建立政策和IAM角色。Firehose 擔任此IAM角色並執行必要的動作。
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
建立政策並在政策編輯器JSON中選擇 。新增下列內嵌政策,以授予 Amazon S3 許可,例如讀取/寫入許可、更新資料目錄中資料表的許可,以及其他許可。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3TableAccessViaGlueFederation", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetDatabase", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:<region>:<account-id>:catalog/s3tablescatalog/*", "arn:aws:glue:<region>:<account-id>:catalog/s3tablescatalog", "arn:aws:glue:<region>:<account-id>:catalog", "arn:aws:glue:<region>:<account-id>:database/*", "arn:aws:glue:<region>:<account-id>:table/*/*" ] }, { "Sid": "S3DeliveryErrorBucketPermission", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<error delivery bucket>", "arn:aws:s3:::<error delivery bucket>/*" ] }, { "Sid": "RequiredWhenUsingKinesisDataStreamsAsSource", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:<region>:<account-id>:stream/<stream-name>" }, { "Sid": "RequiredWhenDoingMetadataReadsANDDataAndMetadataWriteViaLakeformation", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Sid": "RequiredWhenUsingKMSEncryptionForS3ErrorBucketDelivery", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:<region>:<account-id>:key/<KMS-key-id>" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.<region>.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::<error delivery bucket>/prefix*" } } }, { "Sid": "LoggingInCloudWatch", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<account-id>:log-group:<log-group-name>:log-stream:<log-stream-name>" ] }, { "Sid": "RequiredWhenAttachingLambdaToFirehose", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:<region>:<account-id>:function:<function-name>:<function-version>" ] } ] }
此政策具有允許存取 Amazon Kinesis Data Streams、叫用 Lambda 函數和存取 AWS KMS 金鑰的陳述式。如果您不使用任何這些資源,您可以移除個別的陳述式。如果啟用錯誤記錄,Amazon Data Firehose 也會將資料交付錯誤傳送到您的 CloudWatch 日誌群組和串流。您必須設定日誌群組和日誌串流名稱,才能使用此選項。如需日誌群組和日誌串流名稱,請參閱 (使用 CloudWatch 日誌監控 Amazon Data Firehose) (需要連結)。
在內嵌政策中,將 <error delivery bucket>
取代為您的 Amazon S3 儲存貯體名稱,aws-account-id
並將 區域取代為資源的有效 AWS 帳戶 數字和區域。
建立政策後,在 開啟 IAM 主控台https://console.aws.amazon.com/iam/
針對服務或使用案例,選擇 Kinesis。針對使用案例 ,選擇 Kinesis Firehose。
在下一頁中,選擇在上一個步驟中建立的政策以連接至此角色。在檢閱頁面上,您會找到已連接至此角色的信任政策,授予 Firehose 服務擔任此角色的許可。當您建立角色時,Amazon Data Firehose 可以擔任它,在 AWS Glue 和 S3 儲存貯體上執行必要的操作。將 Firehose 服務主體新增至所建立角色的信任政策。如需詳細資訊,請參閱允許 Firehose 擔任 IAM角色。
授予 Firehose 對 Apache Iceberg 資料表目的地的存取權
您必須先有 IAM角色,才能使用 建立 Firehose 串流和 Apache Iceberg 資料表 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 主控台
,並使用 建立IAM角色AWS 服務做為受信任實體類型。 -
針對服務或使用案例,選擇 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 儲存貯體,請將 s3:PutObjectAcl
新增至 Amazon S3 動作清單,這會授予儲存貯體擁有者完整存取 Amazon Data Firehose 交付的物件。此政策亦有允許存取 Amazon Kinesis Data Streams 的陳述式。如果您不使用 Amazon 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 Data Firehose 存取 Amazon Redshift 佈建叢集或 Amazon Redshift Serverless 工作群組的權限。Amazon Data Firehose 目前針對每個可用區域使用一個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 |
Asia Pacific (Mumbai) | 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 儲存貯體,請將 s3:PutObjectAcl
新增至 Amazon S3 動作清單,這會授予儲存貯體擁有者完整存取 Amazon Data Firehose 交付的物件。此政策亦有允許存取 Amazon Kinesis Data Streams 的陳述式。如果您不使用 Amazon 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 服務。
若要了解如何授予 Amazon Data Firehose 存取另一個帳戶中 OpenSearch 的服務叢集,請參閱 跨帳戶交付至 OpenSearch 服務目的地。
授予 Firehose 對 中 OpenSearch 服務目的地的存取權 VPC
如果您的 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 服務網域時要使用的安全群組。您可以使用 OpenSearch 與服務網域使用的相同安全群組或不同的安全群組。如果您指定不同的安全群組,請確保它允許傳出HTTPS流量到 OpenSearch服務網域的安全群組。此外,請確定 OpenSearch 服務網域的安全群組允許來自您在設定 Firehose 串流時所指定安全群組的HTTPS流量。如果您同時針對 Firehose 串流和服務 OpenSearch 網域使用相同的安全群組,請確定安全群組傳入規則允許HTTPS流量。如需安全群組規則的詳細資訊,請參閱 Amazon VPC 文件中的安全群組規則。
授予 Firehose 對公 OpenSearch有無伺服器目的地的存取權
當您使用無 OpenSearch 伺服器目的地時,Amazon Data Firehose 會將資料交付至無 OpenSearch 伺服器集合,並同時將失敗或所有文件備份至 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 儲存貯體,請將 s3:PutObjectAcl
新增至 Amazon S3 動作清單,這會授予儲存貯體擁有者完整存取 Amazon Data Firehose 交付的物件。此政策亦有允許存取 Amazon Kinesis Data Streams 的陳述式。如果您不使用 Amazon 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 上一節所述的許可。此外,您需要為 Amazon Data Firehose 提供下列許可,讓其能夠存取您 OpenSearch Serverless 集合的 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 伺服器集合時要使用的安全群組。您可以使用與 OpenSearch Serverless 集合相同的安全群組,或不同的安全群組。如果您指定不同的安全群組,請確保它允許傳出HTTPS流量到 OpenSearch Serverless 集合的安全群組。此外,請確定 Serverless OpenSearch集合的安全群組允許來自您在設定 Firehose 串流時所指定安全群組的HTTPS流量。如果您同時針對 Firehose 串流和 OpenSearch Serverless 集合使用相同的安全群組,請確定安全群組傳入規則允許HTTPS流量。如需安全群組規則的詳細資訊,請參閱 Amazon VPC 文件中的安全群組規則。
授予 Firehose 存取 Splunk 目的地的權限
當您使用 Splunk 目的地時,Amazon Data Firehose 會將資料交付到您的 Splunk HTTP事件收集器 (HEC) 端點。它也可以將資料備份到您指定的 Amazon S3 儲存貯體,並且您可以選擇使用您擁有的 AWS KMS 金鑰進行 Amazon S3 伺服器端加密。如果啟用錯誤記錄,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 儲存貯體,請將 s3:PutObjectAcl
新增至 Amazon S3 動作清單,這會授予儲存貯體擁有者完整存取 Amazon Data Firehose 交付的物件。此政策也會授予 Amazon Data Firehose 存取權, CloudWatch 以記錄錯誤,以及 AWS Lambda 授予 以轉換資料。此政策亦有允許存取 Amazon Kinesis Data Streams 的陳述式。如果您不使用 Amazon Kinesis Data Streams 作為資料來源,可移除該陳述式。Amazon 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:::
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 |
Asia Pacific (Mumbai) | 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 |
Europe (Paris) | 35.180.112.0/26 |
歐洲 (西班牙) | 18.100.194.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 將VPC流程日誌擷取至 Splunk
存取 Snowflake 或HTTP端點
當目的地為HTTP端點或 Snowflake 公有叢集時,Amazon Data Firehose 沒有特定的 AWS IP 地址範圍子集。
若要將 Firehose 新增至公有 Snowflake 叢集或公有HTTP或HTTPS端點的允許清單,請將所有目前的 AWS IP 地址範圍新增至您的輸入規則。
注意
通知並非一律來自與其相關主題位於相同 AWS 區域中的 IP 地址。您必須包含所有區域的 AWS IP 地址範圍。
授予 Firehose 對 Snowflake 目的地的存取權
當您使用 Snowflake 做為目的地時,Firehose 會使用 Snowflake 帳戶 將資料交付至 Snowflake 帳戶URL。它也可以將錯誤資料備份到您指定的 Amazon Simple Storage Service 儲存貯體,您也可以選擇使用您擁有的 AWS Key Management Service 金鑰進行 Amazon S3 伺服器端加密。如果啟用錯誤記錄,Firehose 會將資料交付錯誤傳送到您的 CloudWatch Logs 串流。
您必須先有 IAM角色,才能建立 Firehose 串流。Firehose 會擔任該IAM角色,並存取指定的儲存貯體、金鑰和 CloudWatch Logs 群組和串流。使用以下存取政策,讓 Firehose 存取您的 S3 儲存貯體。如果您不擁有 S3 儲存貯體,請將 s3:PutObjectAcl
新增至 Amazon Simple Storage Service 動作清單,這會授予儲存貯體擁有者 Firehose 交付物件的完整存取權。此政策也會授予 Firehose 對 的存取權, CloudWatch 以記錄錯誤。此政策亦有允許存取 Amazon Kinesis Data Streams 的陳述式。如果您不使用 Amazon Kinesis Data Streams 作為資料來源,可移除該陳述式。Firehose 不使用 IAM 存取 Snowflake。為了存取 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端點,將資料交付至您的私有叢集,而無需透過公有網際網路。為此,請建立 Snowflake 網路規則,以允許AwsVpceIds
AWS 區域 叢集所在的從下列項目傳入。如需詳細資訊,請參閱 Snowflake 使用者指南中的建立網路規則
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-011fd2b1f0a172fd |
亞太區域 (東京) |
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 |
Europe (Paris) |
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 儲存貯體,請將 s3:PutObjectAcl
新增至 Amazon S3 動作清單,這會授予儲存貯體擁有者完整存取 Amazon Data Firehose 交付的物件。此政策也會授予 Amazon Data Firehose 存取權, CloudWatch 以記錄錯誤,以及 AWS Lambda 授予 以轉換資料。此政策亦有允許存取 Amazon Kinesis Data Streams 的陳述式。如果您不使用 Amazon Kinesis Data Streams 作為資料來源,可移除該陳述式。
重要
Amazon Data Firehose 不會用來存取受支援的第三方服務提供者所擁有IAM的HTTP端點目的地,包括 Datadog、Dynatrace LogicMonitor、MongoDB、New Relic、Splunk 或 Sumo Logic。若要存取受支援的第三方服務提供者擁有的指定HTTP端點目的地,請聯絡該服務提供者以取得 APIAmazon 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": [ "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 NOT支援將資料交付至 中的HTTP端點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 叢集,在帳戶 A 中輸入 Amazon MSK叢集ARN的 。
在主題下,指定您希望 Firehose 串流從中擷取資料的 Apache Kafka 主題。建立 Firehose 串流後,您就無法更新此主題。
-
在交付串流名稱中,指定 Firehose 串流的名稱。
在帳戶 B 中,當您建立 Firehose 串流時,您必須擁有IAM角色 (使用 時預設建立 AWS Management Console),以授予 Firehose 串流對設定主題之跨帳戶 Amazon MSK叢集的 'read' 存取權。
以下是由 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 APIs 在不同帳戶中具有 Amazon S3 目的地的帳戶中 AWS 建立 Firehose 串流。下列程序顯示設定帳戶 A 擁有的 Firehose 串流,將資料交付至帳戶 B 擁有的 Amazon S3 儲存貯體的範例。
-
使用授予 Firehose 存取 Amazon S3 目的地中所述的步驟,在帳戶 A 下建立IAM角色。
注意
存取政策中指定的 Amazon S3 儲存貯體在此範例中為 B 帳戶所有。請務必
s3:PutObjectAcl
將 新增至存取政策中的 Amazon S3 動作清單,該政策會授予帳戶 B 對 Amazon Data Firehose 交付之物件的完整存取權。跨帳戶交付需要此許可。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 FirehoseAPIs,在具有 AWS 不同帳戶之 OpenSearch 服務目的地的帳戶中建立 Firehose 串流。下列程序示範如何在帳戶 A 下建立 Firehose 串流,並將其設定為將資料交付至帳戶 B 所擁有 OpenSearch 的服務目的地。
-
使用授予 Firehose 對公有 OpenSearch 服務目的地的存取權中所述的步驟,在 A 帳戶下建立 IAM 角色。
-
若要允許從您在上一個步驟中建立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並指定
ClusterEndpoint
欄位,而不是DomainARN
OpenSearch Service 的 欄位。
注意
若要在不同 AWS 帳戶中具有 OpenSearch 服務目的地的帳戶中建立 Firehose 串流,您必須使用 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
、UntagDeliveryStream
、 TagDeliveryStream
和 以外的所有 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" } } } ] }