本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用秘密
我們建議您使用 AWS Secrets Manager 來存放登入資料或金鑰,以連線至串流目的地,例如 Amazon Redshift、HTTP 端點、Snowflake、Splunk、Coralogix、Datadog、Dynatrace、Elastic、 Honeycomb、LogicMonitor、Logz.io://、MongoDB Cloud 和 New Relic。
您可以在建立 Firehose 串流時, AWS 透過 管理主控台設定這些目的地的 Secrets Manager 身分驗證。如需詳細資訊,請參閱設定目的地設定。或者,您也可以使用 CreateDeliveryStream 和 UpdateDestination API 操作來設定 Secrets Manager 的身分驗證。
Firehose 會使用 加密快取秘密,並在每次連線至目的地時使用這些秘密。它會每 10 分鐘重新整理快取一次,以確保使用最新的登入資料。
您可以選擇在串流生命週期內隨時關閉從 Secrets Manager 擷取秘密的功能。如果您不想使用 Secrets Manager 擷取秘密,您可以改為使用使用者名稱/密碼或 API 金鑰。
注意
雖然 Firehose 中此功能無需額外費用,但您需要支付 Secrets Manager 的存取和維護費用。如需詳細資訊,請參閱AWS Secrets Manager
授予 Firehose 擷取秘密的存取權
若要讓 Firehose 從中擷取秘密 AWS Secrets Manager,您必須向 Firehose 提供存取秘密所需的許可,以及加密秘密的金鑰。
使用 AWS Secrets Manager 存放和擷取秘密時,根據秘密的存放位置和加密方式,有一些不同的組態選項。
-
如果秘密與您的 IAM 角色存放在相同的 AWS 帳戶中,並使用預設 AWS 受管金鑰 (
aws/secretsmanager
) 加密,Firehose 擔任的 IAM 角色只需要秘密的secretsmanager:GetSecretValue
許可。// secret role policy { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "
Secret ARN
" } ] }如需 IAM 政策的詳細資訊,請參閱 的許可政策範例 AWS Secrets Manager。
如果秘密與角色存放在相同的帳戶中,但使用客戶受管金鑰 (CMK) 加密,則角色需要
secretsmanager:GetSecretValue
和kms:Decrypt
許可。CMK 政策也需要允許 IAM 角色執行kms:Decrypt
。如果秘密存放在與您的 角色不同的 AWS 帳戶中,並使用預設 AWS 受管金鑰加密,則無法進行此組態,因為當秘密使用 AWS 受管金鑰加密時,Secrets Manager 不允許跨帳戶存取。
-
如果秘密存放在不同的帳戶中並使用 CMK 加密,IAM 角色需要 CMK 秘密和
kms:Decrypt
許可的secretsmanager:GetSecretValue
許可。秘密的資源政策和另一個帳戶中的 CMK 政策也需要允許 IAM 角色必要的許可。如需詳細資訊,請參閱跨帳戶存取。