AWS Secrets Manager シークレットを作成する - AWS Secrets Manager

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

AWS Secrets Manager シークレットを作成する

シークレットは、パスワード、ユーザーネームやパスワードなどの一連の認証情報、OAuth トークン、または、暗号化された形式で Secrets Manager に保存されるその他のシークレット情報にすることができます。

ヒント

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

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

シークレットを作成するには、SecretsManagerReadWrite マネージドポリシーで付与されるアクセス許可が必要です。

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

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

  2. [Store a new secret] (新しいシークレットを保存する) を選択します。

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

    1. [Secret type] (シークレットの種類) で、次のいずれかを実行します。

      • データベース認証情報を保存するには、保存するデータベース認証情報のタイプを選択します。次に、[データベース] を選択し、[認証情報] を入力します。

      • API キー、アクセストークン、データベース用ではない認証情報を保存するには、[その他のタイプのシークレット] を選択します。

        [キーと値のペア] に、JSON の キーと値 ペアでシークレットを入力するか、[プレーンテキスト] タブを開き、任意の形式でシークレットを入力します。シークレットには最大 65536 バイトまで保存できます。例:

        API key

        キーと値のペアとして次を入力します。

        ClientID: client_id

        ClientSecret : wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

        OAuth token

        プレーンテキストとして入力します。

        AKIAI44QH8DHB例

        Digital certificate

        プレーンテキストとして入力します。

        -----BEGIN CERTIFICATE----- EXAMPLE -----END CERTIFICATE-----
        Private key

        プレーンテキストとして入力します。

        –--- BEGIN PRIVATE KEY ---- EXAMPLE ––-- END PRIVATE KEY –---
    2. [暗号化キー] には、シークレット内の値を暗号化するために Secrets Manager で使用する AWS KMS key を選択します。詳細については、「シークレット暗号化と復号」を参照してください。

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

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

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

    3. [Next] を選択します。

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

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

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

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

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

    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" }
例 シークレットを作成する

次に、2 つのキーと値のペアを持つシークレットを作成する、create-secret の例をします。

aws secretsmanager create-secret \ --name MyTestSecret \ --description "My test secret created with the CLI." \ --secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"

AWS SDK

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