ローテーションの仕組み - AWS Secrets Manager

ローテーションの仕組み

シークレットをローテーションするために、Secrets Manager は、設定したスケジュールに従って Lambda 関数を呼び出します。ローテーション中、Secrets Manager は毎回異なるパラメータを使用して、同じ関数を複数回呼び出します。ローテーション関数は、シークレットのローテーション処理を実行します。シークレットのローテーションには 4 つのステップがあり、それぞれが、ローテーション用の Lambda 関数にある 4 つのステップに対応しています。ローテーション中、Secrets Manager はステージングラベルを使用して、シークレットのバージョンにラベル付けを行います。

ステップ 1: シークレットの新しいバージョンを作成する (createSecret)

ローテーションの最初のステップでは、シークレットの新しいバージョンが作成されます。ローテーション戦略に基づき、この新しいバージョンには新しいパスワード、新しいユーザー名とパスワード、またはそれ以上の秘密情報を含めることができます。Secrets Manager は、この新しいバージョンに対し、ステージングラベル AWSPENDING をラベル付けします。

ステップ 2: データベースまたはサービスの認証情報を変更する (setSecret)

次に、AWSPENDING バージョンのシークレットと一致するよう、データベースまたはサービス内の認証情報が、ローテーションにより変更されます。このステップでは、ローテーション戦略に応じて、既存のユーザーと同じアクセス許可を付与しながら、新しいユーザーを作成できます。

ステップ 3: 新しいシークレットバージョンをテストする (testSecret)

次に、ローテーションは、データベースまたはサービスにアクセスすることで、シークレットの AWSPENDING バージョンをテストします。ローテーション関数のテンプレート に基づくローテーション関数では、読み取りアクセスを使用して、新しいシークレットをテストします。アプリケーションが必要とするアクセスのタイプに応じて関数を変更し、書き込みアクセスなどの他のアクセスを含めます。「Secrets Manager のローテーション用 Lambda 関数のカスタマイズ」を参照してください。

ステップ 4: ローテーションを完了する (finishSecret)

最後にローテーションは、以前のシークレットバージョンからこのバージョンに対し、ラベル AWSCURRENT の移行を行います。Secrets Manager は、以前のバージョンに対しステージングラベル AWSPREVIOUS を付加します。これにより、シークレットの最後の有効なバージョンが保持されます。

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

ローテーションの正常な終了後、Secrets Manager から しているアプリケーションは、更新された認証情報を自動的に取得します。ローテーションの各ステップの動作の詳細については、「Secrets Manager でのローテーション関数テンプレート」を参照してください。

自動ローテーションを有効にするには、以下を参照してください。