AWS Secrets Manager
ユーザーガイド

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

このチュートリアルでは、シークレットを作成して AWS Secrets Manager に保存します。次に、AWS マネジメントコンソール と AWS CLI の両方でシークレットを取得します。

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

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

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

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

前提条件

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

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

このステップでは、IAM ユーザーとしてサインインしてシークレットを作成します。

シークレットを作成および保存するには

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

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

  3. [新しいシークレットの保存] ページで、[他の種類のシークレット] を選択します。

  4. [Select the encryption key(暗号化キーの選択)] で、[DefaultEncryptionKey] を選択します。AWS KMS がアカウントで作成するデフォルトの AWS 管理キーを使用する場合、Secrets Manager によって課金されることはありません。作成した KMS キーを使用する場合は、標準の AWS KMS レートで課金されます。

  5. [Credentials you want to store (保存する認証情報)] で、[Secret key : Secret value (シークレットキー : シークレット値)] を選択し、シークレット値をキーと値のペアとしてシークレットを入力できるようにします。

  6. 最初のテキストボックスに「username」と入力します。2 番目のテキストボックスに「myserviceusername」と入力します。

  7. [+行を追加] を選択して、2 番目のキーと値のペアを追加します。

  8. 最初のボックスに「password」と入力します。2 番目のテキストボックスに「MyVerySecureP@ssw0rd!」と入力します。

  9. ボックスの上にある [Plaintext] (プレーンテキスト) を選択すると、シークレットの [SecretString] フィールドに保存されるシークレットテキストの JSON バージョンが表示されます。

  10. [Select the encryption key] (暗号化キーの選択) に、デフォルト値の [DefaultEncryptionKey] を使用します。

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

  12. [シークレットの名前と説明] の [シークレットシークレット名] に「tutorials/MyFirstTutorialSecret」と入力します。これで、使用するシークレットが仮想フォルダー「tutorials」に保存されます。

  13. [説明] に、The secret I created for the first tutorial. のように入力します。

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

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

  16. [確認] ページで、選択したすべての設定を確認できます。また、[Sample code (サンプルコード)] セクションで、認証情報の取得にこのシークレットを使用するために、切り取ってアプリに貼り付けられるコードを確認します。–各タブには、同じコードがさまざまなプログラミング言語であります。

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

    アカウントのシークレットのリストに戻ってきます。自分の新しいシークレットがリストに含まれています。

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

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

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

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

    シークレットの詳細ページが表示されます。

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

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

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

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

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

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

    $ aws secretsmanager describe-secret --secret-id tutorials/MyFirstTutorialSecret { "ARN": "arn:aws:secretsmanager:region:123456789012:secret:tutorials/MyFirstTutorialSecret-jiObOV", "Name": "tutorials/MyFirstTutorialSecret", "Description": "My First Secret", "LastChangedDate": 1522680794.8, "LastAccessedDate": 1522627200.0, "VersionIdsToStages": { "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE": [ "AWSCURRENT" ] } }

    注意すべき項目の 1 つは、[VersionIdsToStages] レスポンス値です。これには、シークレットのすべてのアクティブなバージョン、および各バージョンにアタッチされたステージングラベルのリストが含まれます。このチュートリアルでは、単一のステージングラベル AWSCURRENT にマッピングされるバージョン ID (UUID タイプ値) が表示されます。

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

    $ aws secretsmanager get-secret-value --secret-id tutorials/MyFirstTutorialSecret --version-stage AWSCURRENT { "ARN": "arn:aws:secretsmanager:region:123456789012:secret:tutorials/MyFirstTutorialSecret-jiObOV", "Name": "tutorials/MyFirstTutorialSecret", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE", "SecretString": "{\"username\":\"myserviceusername\",\"password\":\"MyVerySecureP@ssw0rd!\"}", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": 1522680764.668 }

    実際には、AWSCURRENT とは別のステージングラベルのあるバージョンの詳細が必要な場合のみ、前のコマンドに --version-stage パラメータを含める必要があります。デフォルト値は AWSCURRENT です。

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

概要

このチュートリアルでは、シンプルなシークレットを作成し、必要に応じてシークレット値を取得するのがとても簡単であることを示しました。シークレットを作成し、自動ローテーションを設定するための別のチュートリアルについては、チュートリアル: AWS データベースのシークレットのローテーション を参照してください。