本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用秘密
我們建議您使用 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和 UpdateDestinationAPI操作來設定 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
。{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "
Secret ARN
" }, { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "KMSKeyARN
" } ] }如果秘密存放在與您的角色不同的 AWS 帳戶中,並且使用預設 AWS 受管金鑰加密,則無法進行此組態,因為當秘密使用 AWS 受管金鑰加密時,Secrets Manager 不允許跨帳戶存取。
-
如果秘密存放在不同的帳戶中並使用 加密CMK,IAM角色需要 秘密的
secretsmanager:GetSecretValue
許可和 上的kms:Decrypt
許可CMK。秘密的資源政策和其他帳戶中CMK的政策也需要允許IAM角色必要的許可。如需詳細資訊,請參閱跨帳戶存取。