

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# シークレットを使用する
<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 ポリシーの詳細については、「[Permissions policy examples for 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 ロールにはシークレットに対する `secretsmanager:GetSecretValue` 許可と CMK に対する `kms:Decrypt` 許可が必要です。シークレットのリソースポリシーと他のアカウントの CMK ポリシーも、IAM ロールに必要な許可を付与する必要があります。詳細については、「[クロスアカウントアクセス](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html)」を参照してください。