別の種類のシークレットを自動的にローテーションする - AWS Secrets Manager

別の種類のシークレットを自動的にローテーションする

Amazon RDS、Amazon DocumentDB、Amazon Redshift シークレット用に、Secrets Manager が完全なローテーションテンプレートを提供します。詳細については、「Amazon RDS、Amazon DocumentDB、Amazon Redshift のシークレットを自動的にローテーションする」を参照してください。

他のタイプのシークレットについては、独自のローテーション関数を作成します。Secrets Manager では、開始点として使用できる 汎用のローテーション関数テンプレート を用意しています。Secrets Manager コンソール、または AWS Serverless Application Repository コンソールを使用してテンプレートから関数を作成すると、同時に Lambda 実行ロールも自動セットアップされます。

シークレットの自動的なローテーションには、AWS CloudFormation を使用して、AWS::SecretsManager::RotationSchedule を含めながらシークレットを作成するという別の方法もあります。「Automate secret creation in AWS CloudFormation」を参照してください。

開始するには、以下が必要です。

  • データベースまたはサービスのユーザーに関する認証情報など、ローテーションの対象となる情報を含むシークレット。

ローテーションを有効にするには (コンソール)

  1. Secrets Manager のコンソール (https://console.aws.amazon.com/secretsmanager/) を開きます。

  2. [Secrets] (シークレット) ページで、自分のシークレットを選択します。

  3. シークレットの詳細ページで、[Rotation configuration (ローテーション設定)] セクションの [Edit rotation (ローテーションの編集)] を選択します。[Edit rotation configuration] (ローテーション設定を編集する) ダイアログボックスが開きます。次の作業を行います。

    1. [Enable automatic rotation] (自動ローテンションの有効化) を選択します。

    2. [Select rotation interval] (ローテンション間隔の選択) で、ローテーションを開始するまでのシークレットの保持日数を選択します。

    3. [Choose a Lambda function] (Lambda 関数を選択) で、以下の内いずれかを実行します。

      1. 同じタイプのシークレットのローテーション関数をすでに作成している場合は、それを選択します。

      2. それ以外の場合は、[関数の作成] を選択します。Lambda コンソールで、新しいローテーション関数を作成します。[Browse serverless app repository] (Serverless Application Repository の参照) が表示されたら、それをクリックした後、[SecretsManagerRotationTemplate] を選択します。それ以外の場合は、[Author from scratch] (一から作成) をクリックし、汎用のローテーション関数テンプレート を関数の開始点として使用します。「ローテーションの仕組み」で説明されている各ステップを実装します。

        関数の作成が完了したら、Secrets Manager コンソールに戻り、シークレットの作業を終了します。[Choose a Lambda function] (Lambda 関数を選択) で、[Refresh] (更新) ボタンをクリックします。次に、関数のリストから新しく作成した関数を選択します。

    4. [Save] を選択します。

ローテーションに関する一般的な問題の解決方法については、「シークレットの AWS Secrets Manager ローテーションのトラブルシューティング」を参照してください。

AWS SDK と AWS CLI

ローテーションの有効化については、以下を参照してください。