チュートリアル: シークレットの作成と取得 - AWS Secrets Manager

チュートリアル: シークレットの作成と取得

このチュートリアルでは、シークレットを作成して AWS Secrets Manager に保存します。次に、AWS Management Console または AWS CLI を使用してシークレットを取得します。

Secrets Manager を初めて使用されるユーザーは、30 日間の無料トライアルプログラムに登録することができます。このチュートリアルのアクティビティの料金は請求されません。

ステップ 1: AWS Secrets Manager でシークレットを作成および保存する

このステップでは、シークレットを作成し、AWS Secrets Manager で必要な基本情報を提供します。

ステップ 2: AWS Secrets Manager からシークレットを取得する

次に、Secrets Manager コンソールと AWS CLI を使用して、シークレットを取得します。

Prerequisites

このチュートリアルは、AWS アカウントにアクセスできること、および、AWS Secrets Manager コンソールでシークレットを作成し取得するためのアクセス許可を持つ、または AWS CLI で同等のコマンドを使用できるアクセス許可を持つ IAM ユーザーとして、AWS にサインインできることが前提となります。IAM ユーザーの設定に関する詳細は、IAM のドキュメント を参照してください。

ステップ 1: AWS Secrets Manager でシークレットを作成および保存する

Secrets Manager Console

コンソールからシークレットを作成して保存する

  1. 次の場所で AWS Secrets Manager コンソールにサインインします。https://console.aws.amazon.com/secretsmanager/

  2. サービスの概要ページまたは [シークレット] リストページで、[新しいシークレットの保存] を選択します。

  3. [新しいシークレットの保存] ページで、[他の種類のシークレット] を選択します。シークレットはデータベースに適用されないため、このタイプのシークレットを選択します。

  4. [このシークレットに保存するキーと値のペアを指定します] で、最初のフィールドに MyFirstSecret と入力します。パスワードを設定するには、次のフィールドに値を追加します。

    シークレットの情報 (認証情報や接続の詳細等)を、キー名と値の文字列のペアとして指定します。例えば、ユーザーネームをキー名、ユーザーのサインインネームを値としてそれぞれ指定することができます。

  5. [Select the encryption key(暗号化キーの選択)] で、[DefaultEncryptionKey] を選択します。こちらは AWS マネージドキー (aws/secretsmanager) です。利用料金は発生しません。カスタマーマネージドポリシーを AWS KMS で作成する場合、AWS では標準の AWS KMS レートで料金が発生します。

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

  7. [シークレット名] で、テキストフィールドにシークレットの名前を入力します。使用できるのは英数字と /_+ =.@- の文字だけです。

    例えば、tutorials/MyFirstSecret のようなシークレット名を使用できます。これで、仮想フォルダ tutorials に、MyFirstSecret という値でシークレットが保存されます。階層的な方法でシークレットを命名するとシークレットの管理が容易になり、お勧めです。

  8. [説明] フィールドに、ルールの説明を入力します。

    [説明] に「Create Secret」などと入力します。

  9. [タグ] セクションで、[キー] および [Value - optional (値 - オプション)] テキストフィールドに目的のタグを追加します。

    このチュートリアルでは、タグを空白のままにしておきます。ただし、タグはシークレットを識別するためのベストプラクティスとして使用することが推奨されます。

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

  11. このチュートリアルでは、[自動ローテーションを無効化] を選択し、[次へ] を選択します。

    注記

    次のチュートリアルでは、シークレットのローテーションについて説明します。

  12. [確認] ページでは、シークレットの設定を確認することができます。また、サンプルコードのセクションに、自分のアプリケーションに追加できるカット&ペースト可能なコードがあり、このシークレットを使って認証情報を取得できることを確認します。各タブには、コードがさまざまなプログラミング言語で表示されます。

  13. 変更を保存するには、[保存] を選択します。

    Secrets Manager コンソールがアカウントのシークレットリストに戻り、新しいシークレットがリストに含まれます。

Secrets Manager CLI
  1. コマンドプロンプトを開き、AWS CLI を実行します。AWS CLI をまだインストールしていない場合は、「AWS Command Line Interface のインストール」を参照してください。

  2. シークレットを作成する

    次のコマンドとパラメータを入力します。

    $ aws secretsmanager create-secret --name tutorials/MyFirstSecret --description "Basic Create Secret" --secret-string S3@tt13R0cks

コマンドの出力には、次の情報が表示されます。

{ "ARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:tutorials/MyFirstSecret-rzM8Ja", "Name": "MyFirstSecret", "VersionId": "35e07aa2-684d-42fd-b076-3b3f6a19c6dc" }

ステップ 2: AWS Secrets Manager からシークレットを取得する

このステップでは、Secrets Manager コンソールと AWS CLI の両方を使用してシークレットを取得します。

AWS Secrets Manager コンソールでシークレットを取得する

  1. まだコンソールにログインしていない場合は、コンソール (https://console.aws.amazon.com/secretsmanager/) に移動し、Secrets Manager サービスにログインします。

  2. [シークレット] リストページで、作成した新しいシークレットの名前を選択します。

    Secrets Manager に、シークレットの [Secrets details] (シークレットの詳細) ページが表示されます。

  3. [シークレット値] セクションで、[Retrieve secret value(シークレット値の取得)] を選択します。

  4. シークレットは、キーと値のペアとして、または JSON テキスト構造として表示できます。

AWS Secrets Manager CLI を使用してシークレットを取得するには

  1. コマンドプロンプトを開き、AWS CLI を実行します。AWS CLI をまだインストールしていない場合は、「AWS Command Line Interface のインストール」を参照してください。

  2. シークレットにアクセスするためのアクセス許可を持つ認証情報を使用して、次の各コマンドとパラメータを入力します。

    暗号化されたテキスト以外のすべてのシークレットの詳細を表示するには:

    $ aws secretsmanager describe-secret --secret-id tutorials/MyFirstSecret { "ARN": "arn:aws::secretsmanager:us-east-2:111122223333:secret:tutorials/MyFirstSecret-jiObOV", "Name": "tutorials/MyFirstSecret", "Description": "Basic Create Secret", "LastChangedDate": 1522680794.8, "LastAccessedDate": 1522627200.0, "VersionIdsToStages": { "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE": [ "AWSCURRENT" ] } }

    VersionIdsToStages の戻り値を確認します。出力には、シークレットのすべての有効なバージョン、および各バージョンに添付されたステージングラベルのリストが含まれます。このチュートリアルでは、単一のステージングラベル AWSCURRENT にマッピングされるバージョン ID (UUID タイプ値) が表示されます。

    シークレットの暗号化されたテキストを表示するには:

    $ aws secretsmanager get-secret-value --secret-id tutorials/MyFirstSecret --version-stage AWSCURRENT { "ARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:tutorials/MyFirstSecret-jiObOV", "Name": "tutorials/MyFirstSecret", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE", "SecretString": "S3@ttl3R0cks", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": 1522680764.668 }

    AWSCURRENT とは異なるステージングラベルのバージョンの詳細が必要な場合は、前述のコマンドに --version-stage パラメータを含める必要があります。Secrets Manager は AWSCURRENT をデフォルト値として使用します。

    出力の結果には、SecretString レスポンスフィールドの、シークレット値の JSON バージョンが含まれます。

Summary

このチュートリアルでは、単純なシークレットを作成する方法と、シークレット値が必要なときにこの値を取得する簡単な方法について説明しました。シークレットの作成と自動ローテーションの設定に関する別のチュートリアルについては、「チュートリアル: AWS データベースのシークレットをローテーションする」を参照してください。