AWS Secrets Manager データベースシークレットを作成する - AWS Secrets Manager

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

AWS Secrets Manager データベースシークレットを作成する

Amazon 、Amazon AuroraRDS、Amazon Redshift、または Amazon DocumentDB でユーザーを作成したら、次のステップに従ってその認証情報を Secrets Manager に保存できます。 AWS CLI または のいずれかを使用してシークレットSDKsを保存する場合は、シークレットを正しいJSON構造 で指定する必要があります。コンソールを使用してデータベースシークレットを保存すると、Secrets Manager によって自動的に正しいJSON構造で作成されます。

ヒント

Amazon RDSおよび Amazon Redshift 管理者ユーザーの認証情報には、マネージドシークレット を使用することをお勧めします。マネージドシークレットは管理サービスを通じて作成し、マネージドローテーション を使用できます。

他のリージョンにレプリケートされているソースデータベースのデータベース認証情報を保存すると、シークレットにはソースデータベースの接続情報が含まれます。その後、シークレットをレプリケートすると、レプリカはソースシークレットのコピーとなり、同じ接続情報が含まれます。リージョン接続情報のシークレットにキー/値ペアを追加できます。

シークレットを作成するには、 SecretsManagerReadWrite によって付与されたアクセス許可が必要ですAWS 管理ポリシー

Secrets Manager は、シークレットの作成時に CloudTrail ログエントリを生成します。詳細については、「で AWS Secrets Manager イベントをログに記録する AWS CloudTrail」を参照してください。

シークレットを作成するには (コンソール)
  1. で Secrets Manager コンソールを開きますhttps://console.aws.amazon.com/secretsmanager/

  2. [新しいシークレットを保存] を選択します。

  3. [Choose secret type] (シークレットタイプを選択する) ページで、次の操作を行います。

    1. [シークレットタイプ] で、保存するデータベース認証情報のタイプを選択します。

      • Amazon RDS データベース (Aurora を含む)

      • Amazon DocumentDB データベース

      • Amazon Redshift データウェアハウス

    2. 認証情報を使用する場合、データベースの認証情報を入力します。

    3. 暗号化キー で、Secrets Manager AWS KMS key がシークレット値を暗号化するために使用する を選択します。詳細については、「シークレット暗号化と復号」を参照してください。

      • 多くの場合、Secrets Manager に AWS マネージドキー を使用するときは、aws/secretsmanager を選択します。このキーを使用してもコストは発生しません。

      • 別の からシークレットにアクセスする必要がある場合 AWS アカウント、または独自のKMSキーを使用してローテーションしたりキーポリシーを適用したりする場合は、リストからカスタマーマネージドキーを選択するか、新しいキーを追加を選択して作成します。カスタマーマネージドキーの使用料金の詳細については、「料金」を参照してください。

        必要なもの: KMS キーのアクセス許可 クロスアカウントアクセスの詳細については、「別のアカウントから AWS Secrets Manager シークレットにアクセスする」を参照してください。

    4. [Database] (データベース) で、データベースを選択します。

    5. [次へ] をクリックします。

  4. [Configure secret] (シークレットを設定する) ページで、次の操作を行います。

    1. わかりやすいシークレット名説明を入力します。シークレット名には、1~512 文字の英数字と /_+=.@- 文字を使用できます。

    2. (オプション) [Tags] (タグ) セクションで、タグをシークレットに追加します。タグ付け戦略については、「AWS Secrets Manager シークレットにタグ付けする」を参照してください。機密情報は暗号化されていないため、タグに保存しないでください。

    3. (オプション) [Resource permissions] (リソースに対するアクセス許可) でリソースポリシーをシークレットに追加するには、[Edit permissions] (アクセス許可の編集) をクリックします。詳細については、「アクセス許可ポリシーを AWS Secrets Manager シークレットにアタッチする」を参照してください。

    4. (オプション) シークレットのレプリケート で、シークレットを別の にレプリケートするには AWS リージョン、シークレットのレプリケート を選択します。シークレットのレプリケーションは、この段階で実行することも、後に戻ってきて実行することもできます。詳細については、「リージョン間でシークレットをレプリケートする」を参照してください。

    5. [Next] (次へ) を選択します。

  5. (オプション) [Configure rotation] (ローテーションを設定する) ページで、シークレットの自動ローテーションを有効にできます。ローテーションをオフにしておいて、後でオンにすることもできます。詳しくは、「シークレットのローテーション」 を参照してください。[Next] (次へ) を選択します。

  6. [Review] (レビュー) ページで、シークレットの詳細を確認し、[Store] (保存) を選択します。

    Secrets Manager はシークレットのリストに戻ります。新しいシークレットが表示されない場合は、更新ボタンを選択します。

AWS CLI

コマンドシェルにコマンドを入力すると、コマンド履歴がアクセスされたり、ユーティリティからコマンドパラメータにアクセスされたりするリスクがあります。AWS CLI を使用して AWS Secrets Manager のシークレットを保存する際のリスクを軽減する を参照してください。

例 JSON ファイル内の認証情報からシークレットを作成する

次の create-secret の例は、ファイル内の認証情報からシークレットを作成します。詳細については、「 ユーザーガイド」の「ファイルからの AWS CLI パラメータのロード AWS CLI 」を参照してください。

Secrets Manager がシークレットをローテーションできるようにするには、 が JSONと一致することを確認する必要がありますシークレットの JSON 構造

aws secretsmanager create-secret \ --name MyTestSecret \ --secret-string file://mycreds.json

mycreds.json の内容:

{ "engine": "mysql", "username": "saanvis", "password": "EXAMPLE-PASSWORD", "host": "my-database-endpoint.us-west-2.rds.amazonaws.com", "dbname": "myDatabase", "port": "3306" }

AWS SDK

のいずれかを使用してシークレットを作成するには AWS SDKs、 CreateSecretアクションを使用します。詳細については、「AWS SDKs」を参照してください。