Lambda 関数によるローテーション - AWS Secrets Manager

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

Lambda 関数によるローテーション

多くのタイプのシークレットの場合、Secrets Manager は AWS Lambda関数を使用してシークレットとデータベースまたはサービスを更新します。Lambda 関数を使用する場合のコストについては、「料金」を参照してください。

他のサービスによって管理されるシークレット の場合、マネージドローテーションを使用します。マネージドローテーション を使用するには、最初に管理サービスを通じてシークレットを作成します。

ローテーション中、Secrets Manager はローテーションの状態を示すイベントをログに記録します。詳細については、「で AWS Secrets Manager イベントをログに記録する AWS CloudTrail」を参照してください。

シークレットをローテーションするために、Secrets Manager は、設定したスケジュールに従って Lambda 関数を呼び出します。自動ローテーションの設定中にシークレット値も手動で更新した場合、Secrets Manager は次のローテーション日を計算するときにそれを有効なローテーションと見なします。

ローテーション中、Secrets Manager は毎回異なるパラメータを使用して、同じ関数を複数回呼び出します。Secrets Manager は、次の JSON リクエスト構造のパラメータを使用して 関数を呼び出します。

{ "Step" : "request.type", "SecretId" : "string", "ClientRequestToken" : "string", "RotationToken" : "string" }
パラメータ :
  • ステップ – ローテーションステップ: create_secretset_secrettest_secret、または finish_secret。詳細については、「ローテーション関数の 4 つのステップ」を参照してください。

  • SecretId – ローテーションするシークレットの ARN。

  • ClientRequestToken – シークレットの新しいバージョンの一意の ID。この値は、べき等性を確保するのに役立ちます。詳細については、「AWS Secrets Manager API Reference」の「PutSecretValue: ClientRequestToken」を参照してください。

  • RotationToken – リクエストのソースを示す一意の ID。引き受けたロールまたはクロスアカウントローテーションを使用したシークレットローテーションに必要です。このローテーションでは、あるアカウントのシークレットを、別のアカウントの Lambda ローテーション関数を使用してローテーションします。いずれの場合も、ローテーション関数は Secrets Manager を呼び出す IAM ロールを引き受け、Secrets Manager はローテーショントークンを使用して IAM ロール ID を検証します。

ローテーションステップが失敗すると、Secrets Manager はローテーションプロセス全体を複数回再試行します。