

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用秘密
<a name="secrets-manager-how"></a>

我們建議您使用 AWS Secrets Manager 來存放登入資料或金鑰，以連線至串流目的地，例如 Amazon Redshift、HTTP 端點、Snowflake、Splunk、Coralogix、Datadog、Dynatrace、Elastic、 Honeycomb、LogicMonitor、Logz.io：//、MongoDB Cloud 和 New Relic。

您可以在建立 Firehose 串流時， AWS 透過 管理主控台設定這些目的地的 Secrets Manager 身分驗證。如需詳細資訊，請參閱[設定目的地設定](create-destination.md)。或者，您也可以使用 [CreateDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html) 和 [UpdateDestination](https://docs.aws.amazon.com/firehose/latest/APIReference/API_UpdateDestination.html) API 操作來設定 Secrets Manager 的身分驗證。

Firehose 會使用 加密快取秘密，並在每次連線至目的地時使用這些秘密。它會每 10 分鐘重新整理快取一次，以確保使用最新的登入資料。

您可以選擇在串流生命週期內隨時關閉從 Secrets Manager 擷取秘密的功能。如果您不想使用 Secrets Manager 擷取秘密，您可以改用使用者名稱/密碼或 API 金鑰。

**注意**  
雖然 Firehose 中此功能無需額外費用，但您需要支付 Secrets Manager 的存取和維護費用。如需詳細資訊，請參閱 [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/pricing/) 定價頁面。

## 授予 Firehose 擷取秘密的存取權
<a name="secrets-manager-permission"></a>

若要讓 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](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html)。
+ 如果秘密與角色存放在相同的帳戶中，但使用[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) (CMK) 加密，則角色需要 `secretsmanager:GetSecretValue`和 `kms:Decrypt`許可。CMK 政策也需要允許 IAM 角色執行 `kms:Decrypt`。
+ 如果秘密存放在與您的角色不同的 AWS 帳戶中，並且使用預設 AWS 受管金鑰加密，則無法進行此組態，因為當秘密使用 AWS 受管金鑰加密時，Secrets Manager 不允許跨帳戶存取。
+ 如果秘密存放在不同的帳戶中並使用 CMK 加密，IAM 角色需要 CMK 秘密和`kms:Decrypt`許可的`secretsmanager:GetSecretValue`許可。秘密的資源政策和另一個帳戶中的 CMK 政策也需要允許 IAM 角色具有必要的許可。如需詳細資訊，請參閱[跨帳戶存取](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html)。