を使用した Secrets Manager の例 AWS CLI - AWS SDKコードの例

Doc AWS SDK ExamplesWord リポジトリには、さらに多くの GitHub の例があります。 AWS SDK

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

を使用した Secrets Manager の例 AWS CLI

次のコード例は、Secrets Manager AWS Command Line Interface で を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には、完全なソースコードへのリンクが含まれています。ここでは、コンテキストでコードを設定および実行する方法の手順を確認できます。

トピック

アクション

次の例は、batch-get-secret-value を使用する方法を説明しています。

AWS CLI

例 1: 名前でリストされたシークレットグループのシークレット値を取得するには

次のbatch-get-secret-value例では、3 つのシークレットのシークレット値シークレットを取得します。

aws secretsmanager batch-get-secret-value \ --secret-id-list MySecret1 MySecret2 MySecret3

出力:

{ "SecretValues": [ { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret1-a1b2c3", "Name": "MySecret1", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "SecretString": "{\"username\":\"diego_ramirez\",\"password\":\"EXAMPLE-PASSWORD\",\"engine\":\"mysql\",\"host\":\"secretsmanagertutorial.cluster.us-west-2.rds.amazonaws.com\",\"port\":3306,\"dbClusterIdentifier\":\"secretsmanagertutorial\"}", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1523477145.729" }, { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret2-a1b2c3", "Name": "MySecret2", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "SecretString": "{\"username\":\"akua_mansa\",\"password\":\"EXAMPLE-PASSWORD\"", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1673477781.275" }, { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret3-a1b2c3", "Name": "MySecret3", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEccccc", "SecretString": "{\"username\":\"jie_liu\",\"password\":\"EXAMPLE-PASSWORD\"", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1373477721.124" } ], "Errors": [] }

詳細については、「Secrets Manager ユーザーガイド」の「バッチ内のシークレットグループを取得するAWS 」を参照してください。

例 2: フィルターで選択されたシークレットグループのシークレット値を取得するには

次のbatch-get-secret-value例では、 というMySecret名前を持つアカウントのシークレット値シークレットを取得します。名前によるフィルタリングでは、大文字と小文字が区別されます。

aws secretsmanager batch-get-secret-value \ --filters Key="name",Values="MySecret"

出力:

{ "SecretValues": [ { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret1-a1b2c3", "Name": "MySecret1", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "SecretString": "{\"username\":\"diego_ramirez\",\"password\":\"EXAMPLE-PASSWORD\",\"engine\":\"mysql\",\"host\":\"secretsmanagertutorial.cluster.us-west-2.rds.amazonaws.com\",\"port\":3306,\"dbClusterIdentifier\":\"secretsmanagertutorial\"}", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1523477145.729" }, { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret2-a1b2c3", "Name": "MySecret2", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "SecretString": "{\"username\":\"akua_mansa\",\"password\":\"EXAMPLE-PASSWORD\"", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1673477781.275" }, { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret3-a1b2c3", "Name": "MySecret3", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEccccc", "SecretString": "{\"username\":\"jie_liu\",\"password\":\"EXAMPLE-PASSWORD\"", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1373477721.124" } ], "Errors": [] }

詳細については、「Secrets Manager ユーザーガイド」の「バッチ内のシークレットグループを取得するAWS 」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のBatchGetSecretValue」を参照してください。

次のコード例は、cancel-rotate-secret を使用する方法を示しています。

AWS CLI

シークレットの自動ローテーションをオフにするには

次のcancel-rotate-secret例では、シークレットの自動ローテーションをオフにします。ローテーションを再開するには、 を呼び出しますrotate-secret

aws secretsmanager cancel-rotate-secret \ --secret-id MyTestSecret

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

詳細については、Secrets Manager ユーザーガイド「シークレットのローテーション」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のCancelRotateSecret」を参照してください。

次の例は、create-secret を使用する方法を説明しています。

AWS CLI

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

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

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" }

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの作成」を参照してください。

例 2: シークレットを作成するには

次に、2 つのキーと値のペアを持つシークレットを作成する、create-secret の例をします。コマンドシェルにコマンドを入力すると、コマンド履歴がアクセスされたり、ユーティリティからコマンドパラメータにアクセスされたりするリスクがあります。これは、 コマンドにシークレットの値が含まれている場合に懸念されます。詳細については、「Secrets Manager ユーザーガイド」の「コマンドラインツールを使用してシークレットを保存するリスクを軽減する」を参照してください。

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

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE" }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの作成」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のCreateSecret」を参照してください。

次の例は、delete-resource-policy を使用する方法を説明しています。

AWS CLI

シークレットにアタッチされたリソースベースのポリシーを削除するには

次に、シークレットにアタッチされているリソースベースのアポリシーを削除する、delete-resource-policy の例を示します。

aws secretsmanager delete-resource-policy \ --secret-id MyTestSecret

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

詳細については、「Secrets Manager ユーザーガイド」の「認証とアクセスコントロール」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のDeleteResourcePolicy」を参照してください。

次のコード例は、delete-secret を使用する方法を示しています。

AWS CLI

例 1: シークレットを削除するには

次の delete-secret の例は、シークレットを削除します。restore-secret レスポンスフィールドで示される日時までは、DeletionDate でこのシークレットを復旧できます。他のリージョンにレプリカが作成されているシークレットを削除する場合は、まずそのレプリカを remove-regions-from-replication で削除してから、delete-secret を呼び出します。

aws secretsmanager delete-secret \ --secret-id MyTestSecret \ --recovery-window-in-days 7

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "DeletionDate": 1524085349.095 }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの削除」を参照してください。

例 2: シークレットを直ちに削除するには

次の delete-secret の例は、復旧期間なしでシークレットを直ちに削除します。この場合のシークレットは復元できません。

aws secretsmanager delete-secret \ --secret-id MyTestSecret \ --force-delete-without-recovery

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "DeletionDate": 1508750180.309 }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの削除」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のDeleteSecret」を参照してください。

次の例は、describe-secret を使用する方法を説明しています。

AWS CLI

シークレットの詳細を取得するには

次の describe-secret の例は、シークレットの詳細を表示します。

aws secretsmanager describe-secret \ --secret-id MyTestSecret

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-Ca8JGt", "Name": "MyTestSecret", "Description": "My test secret", "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE", "RotationEnabled": true, "RotationLambdaARN": "arn:aws:lambda:us-west-2:123456789012:function:MyTestRotationLambda", "RotationRules": { "AutomaticallyAfterDays": 2, "Duration": "2h", "ScheduleExpression": "cron(0 16 1,15 * ? *)" }, "LastRotatedDate": 1525747253.72, "LastChangedDate": 1523477145.729, "LastAccessedDate": 1524572133.25, "Tags": [ { "Key": "SecondTag", "Value": "AnotherValue" }, { "Key": "FirstTag", "Value": "SomeValue" } ], "VersionIdsToStages": { "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111": [ "AWSPREVIOUS" ], "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222": [ "AWSCURRENT" ], "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333": [ "AWSPENDING" ] }, "CreatedDate": 1521534252.66, "PrimaryRegion": "us-west-2", "ReplicationStatus": [ { "Region": "eu-west-3", "KmsKeyId": "alias/aws/secretsmanager", "Status": "InSync", "StatusMessage": "Replication succeeded" } ] }

詳細については、「Secrets Manager ユーザーガイド」の「シークレット」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のDescribeSecret」を参照してください。

次の例は、get-random-password を使用する方法を説明しています。

AWS CLI

ランダムパスワードを生成するには

次のget-random-password例では、少なくとも 1 つの大文字、小文字、数字、句読点を含む 20 文字のランダムなパスワードを生成します。

aws secretsmanager get-random-password \ --require-each-included-type \ --password-length 20

出力:

{ "RandomPassword": "EXAMPLE-PASSWORD" }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの作成と管理」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のGetRandomPassword」を参照してください。

次の例は、get-resource-policy を使用する方法を説明しています。

AWS CLI

シークレットにアタッチされたリソースベースのポリシーを取得するには

次に、シークレットにアタッチされたリソースベースのポリシーを取得する、get-resource-policy の例を示します。

aws secretsmanager get-resource-policy \ --secret-id MyTestSecret

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "ResourcePolicy": "{\n\"Version\":\"2012-10-17\",\n\"Statement\":[{\n\"Effect\":\"Allow\",\n \"Principal\":{\n\"AWS\":\"arn:aws:iam::123456789012:root\"\n},\n\"Action\": \"secretsmanager:GetSecretValue\",\n\"Resource\":\"*\"\n}]\n}" }

詳細については、「Secrets Manager ユーザーガイド」の「認証とアクセスコントロール」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のGetResourcePolicy」を参照してください。

次のコード例は、get-secret-value を使用する方法を示しています。

AWS CLI

例 1: シークレットの暗号化されたシークレット値を取得するには

次の get-secret-value の例は、現在のシークレット値を取得します。

aws secretsmanager get-secret-value \ --secret-id MyTestSecret

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "SecretString": "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": 1523477145.713 }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの取得」を参照してください。

例 2: 前のシークレット値を取得するには

次の get-secret-value の例は、前のシークレット値を取得します。

aws secretsmanager get-secret-value \ --secret-id MyTestSecret --version-stage AWSPREVIOUS

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "SecretString": "{\"user\":\"diegor\",\"password\":\"PREVIOUS-EXAMPLE-PASSWORD\"}", "VersionStages": [ "AWSPREVIOUS" ], "CreatedDate": 1523477145.713 }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの取得」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のGetSecretValue」を参照してください。

次のコード例は、list-secret-version-ids を使用する方法を示しています。

AWS CLI

シークレットに関連付けられているすべてのシークレットバージョンを一覧表示するには

次のlist-secret-version-ids例では、シークレットのすべてのバージョンのリストを取得します。

aws secretsmanager list-secret-version-ids \ --secret-id MyTestSecret

出力:

{ "Versions": [ { "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "VersionStages": [ "AWSPREVIOUS" ], "LastAccessedDate": 1523477145.713, "CreatedDate": 1523477145.713 }, { "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "VersionStages": [ "AWSCURRENT" ], "LastAccessedDate": 1523477145.713, "CreatedDate": 1523486221.391 }, { "CreatedDate": 1.51197446236E9, "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333;" } ], "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

詳細については、「Secrets Manager ユーザーガイド」の「バージョン」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のListSecretVersionIds」を参照してください。

次のコード例は、list-secrets を使用する方法を示しています。

AWS CLI

例 1: アカウント内のシークレットを一覧表示するには

以下の list-secrets の例は、アカウント内のシークレットの一覧を取得します。

aws secretsmanager list-secrets

出力:

{ "SecretList": [ { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "LastChangedDate": 1523477145.729, "SecretVersionsToStages": { "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111": [ "AWSCURRENT" ] } }, { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:AnotherSecret-d4e5f6", "Name": "AnotherSecret", "LastChangedDate": 1523482025.685, "SecretVersionsToStages": { "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222": [ "AWSCURRENT" ] } } ] }

詳細については、「Secrets Manager ユーザーガイド」の「AWS Secrets Manager でシークレットを検索する」を参照してください。

例 2: アカウント内のシークレットの一覧をフィルタリングするには

次の list-secrets の例は、アカウント内にあり、名前に Test が含まれているシークレットの一覧を取得します。名前によるフィルタリングでは、大文字と小文字が区別されます。

aws secretsmanager list-secrets \ --filter Key="name",Values="Test"

出力:

{ "SecretList": [ { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "LastChangedDate": 1523477145.729, "SecretVersionsToStages": { "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111": [ "AWSCURRENT" ] } } ] }

詳細については、「Secrets Manager ユーザーガイド」の「AWS Secrets Manager でシークレットを検索する」を参照してください。

例 3: 別のサービスで管理されているアカウントのシークレットを一覧表示するには

次のlist-secrets例では、Amazon RDS によって管理されているアカウントのシークレットを返します。

aws secretsmanager list-secrets \ --filter Key="owning-service",Values="rds"

出力:

{ "SecretList": [ { "Name": "rds!cluster-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Tags": [ { "Value": "arn:aws:rds:us-west-2:123456789012:cluster:database-1", "Key": "aws:rds:primaryDBClusterArn" }, { "Value": "rds", "Key": "aws:secretsmanager:owningService" } ], "RotationRules": { "AutomaticallyAfterDays": 1 }, "LastChangedDate": 1673477781.275, "LastRotatedDate": 1673477781.26, "SecretVersionsToStages": { "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa": [ "AWSPREVIOUS" ], "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb": [ "AWSCURRENT", "AWSPENDING" ] }, "OwningService": "rds", "RotationEnabled": true, "CreatedDate": 1673467300.7, "LastAccessedDate": 1673395200.0, "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:rds!cluster-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111-a1b2c3", "Description": "Secret associated with primary RDS DB cluster: arn:aws:rds:us-west-2:123456789012:cluster:database-1" } ] }

詳細については、「Secrets Manager ユーザーガイド」の「他の AWS のサービスによって管理される AWS Secrets Manager のシークレット」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のListSecrets」を参照してください。

次の例は、put-resource-policy を使用する方法を説明しています。

AWS CLI

リソースベースのポリシーをシークレットに追加するには

次の put-resource-policy の例では、ポリシーが広範なアクセスをシークレットに提供していないことを最初に確認しながら、シークレットに許可ポリシーを追加しています。このポリシーは、ファイルから読み込まれます。詳細については、AWS CLI ユーザーガイドの「 ファイルからの LoadingWord パラメータ」を参照してください。 AWS CLI

aws secretsmanager put-resource-policy \ --secret-id MyTestSecret \ --resource-policy file://mypolicy.json \ --block-public-policy

mypolicy.json の内容:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MyRole" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

詳細については、「Secrets Manager ユーザーガイド」の「アクセス許可ポリシーをシークレットにアタッチする」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のPutResourcePolicy」を参照してください。

次のコード例は、put-secret-value を使用する方法を示しています。

AWS CLI

例 1: シークレットの新しいシークレット値を保存するには

次の put-secret-value の例は、キーと値の 2 つのペアを含むシークレットの新しいバージョンを作成します。

aws secretsmanager put-secret-value \ --secret-id MyTestSecret \ --secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-1a2b3c", "Name": "MyTestSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "VersionStages": [ "AWSCURRENT" ] }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの変更」を参照してください。

例 2: 認証情報から新しいシークレット値を JSON ファイルに保存するには

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

aws secretsmanager put-secret-value \ --secret-id 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" }

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "VersionStages": [ "AWSCURRENT" ] }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの変更」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のPutSecretValue」を参照してください。

次のコード例は、remove-regions-from-replication を使用する方法を示しています。

AWS CLI

レプリカシークレットを削除するには

次の remove-regions-from-replication の例では、eu-west-3 にあるレプリカシークレットを削除しています。他のリージョンにレプリカが作成されているプライマリシークレットを削除するには、まずそのレプリカを削除してから delete-secret を呼び出します。

aws secretsmanager remove-regions-from-replication \ --secret-id MyTestSecret \ --remove-replica-regions eu-west-3

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-1a2b3c", "ReplicationStatus": [] }

詳細については、Secrets Manager ユーザーガイドの「レプリカシークレットの削除」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のRemoveRegionsFromReplication」を参照してください。

次の例は、replicate-secret-to-regions を使用する方法を説明しています。

AWS CLI

シークレットを別のリージョンにレプリケートするには

次に、シークレットをeu-west-3 にレプリケートする、replicate-secret-to-regions の例を示します。レプリカは、 AWS マネージドキー で暗号化されますaws/secretsmanager

aws secretsmanager replicate-secret-to-regions \ --secret-id MyTestSecret \ --add-replica-regions Region=eu-west-3

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-1a2b3c", "ReplicationStatus": [ { "Region": "eu-west-3", "KmsKeyId": "alias/aws/secretsmanager", "Status": "InProgress" } ] }

詳細については、Secrets Manager ユーザーガイドの「別のリージョンにシークレットをレプリケートする」を参照してください。

  • API の詳細については、 AWS CLI コマンドリファレンスReplicateSecretToRegions を参照してください。

次の例は、restore-secret を使用する方法を説明しています。

AWS CLI

以前に削除したシークレットを復元するには

次の restore-secret の例では、スケジュールにより以前に削除されたシークレットを復元します。

aws secretsmanager restore-secret \ --secret-id MyTestSecret

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの削除」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のRestoreSecret」を参照してください。

次のコード例は、rotate-secret を使用する方法を示しています。

AWS CLI

例 1: シークレットの自動ローテーションを設定して開始するには

次のrotate-secret例では、シークレットの自動ローテーションを設定および開始します。Secrets Manager は、シークレットをすぐに 1 回ローテーションし、その後 8 時間ごとに 2 時間ウィンドウでローテーションします。出力には、ローテーションによって作成されたVersionId新しいシークレットバージョンの が表示されます。

aws secretsmanager rotate-secret \ --secret-id MyTestDatabaseSecret \ --rotation-lambda-arn arn:aws:lambda:us-west-2:1234566789012:function:SecretsManagerTestRotationLambda \ --rotation-rules "{\"ScheduleExpression\": \"cron(0 8/8 * * ? *)\", \"Duration\": \"2h\"}"

出力:

{ "ARN": "aws:arn:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3", "Name": "MyTestDatabaseSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットのローテーション」を参照してください。

例 2: ローテーション間隔で自動ローテーションを設定および開始するには

次のrotate-secret例では、シークレットの自動ローテーションを設定および開始します。Secrets Manager はシークレットをすぐに 1 回ローテーションし、その後は 10 日ごとにローテーションします。出力には、ローテーションによって作成されたVersionId新しいシークレットバージョンの が表示されます。

aws secretsmanager rotate-secret \ --secret-id MyTestDatabaseSecret \ --rotation-lambda-arn arn:aws:lambda:us-west-2:1234566789012:function:SecretsManagerTestRotationLambda \ --rotation-rules "{\"ScheduleExpression\": \"rate(10 days)\"}"

出力:

{ "ARN": "aws:arn:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3", "Name": "MyTestDatabaseSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットのローテーション」を参照してください。

例 3: シークレットをすぐにローテーションするには

次の rotate-secret の例では、すぐにローテーションが開始されます。出力には、ローテーションによって作成されたVersionId新しいシークレットバージョンの が表示されます。シークレットのローテーションは、すでに設定されている必要があります。

aws secretsmanager rotate-secret \ --secret-id MyTestDatabaseSecret

出力:

{ "ARN": "aws:arn:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3", "Name": "MyTestDatabaseSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットのローテーション」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のRotateSecret」を参照してください。

次の例は、stop-replication-to-replica を使用する方法を説明しています。

AWS CLI

レプリカシークレットをプライマリに昇格させるには

次の stop-replication-to-replica の例は、レプリカシークレットからプライマリへのリンクを削除します。このレプリカシークレットは、レプリカのリージョンでプライマリシークレットに昇格されます。stop-replication-to-replica は、レプリカリージョン内から呼び出す必要があります。

aws secretsmanager stop-replication-to-replica \ --secret-id MyTestSecret

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3" }

詳細については、「Secrets Manager ユーザーガイド」の「レプリカシークレットの昇格」を参照してください。

  • API の詳細については、 AWS CLI コマンドリファレンスStopReplicationToReplica を参照してください。

次のコード例は、tag-resource を使用する方法を示しています。

AWS CLI

例 1: シークレットにタグを追加するには

次の の例は、短縮構文を使用してタグをアタッチする方法を示しています。

aws secretsmanager tag-resource \ --secret-id MyTestSecret \ --tags Key=FirstTag,Value=FirstValue

このコマンドでは何も出力されません。

詳細については、「Secrets Manager ユーザーガイド」の「シークレットにタグを付ける」を参照してください。

例 2: シークレットに複数のタグを追加するには

次の tag-resource の例では、キーと値のタグ 2 個がシークレットにアタッチされます。

aws secretsmanager tag-resource \ --secret-id MyTestSecret \ --tags '[{"Key": "FirstTag", "Value": "FirstValue"}, {"Key": "SecondTag", "Value": "SecondValue"}]'

このコマンドでは何も出力されません。

詳細については、「Secrets Manager ユーザーガイド」の「タグシークレット」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のTagResource」を参照してください。

次のコード例は、untag-resource を使用する方法を示しています。

AWS CLI

シークレットからタグを削除するには

次の untag-resource の例では、シークレットから 2 個のタグが削除されます。タグごとに、キーと値の両方が削除されます。

aws secretsmanager untag-resource \ --secret-id MyTestSecret \ --tag-keys '[ "FirstTag", "SecondTag"]'

このコマンドでは何も出力されません。

詳細については、「Secrets Manager ユーザーガイド」の「タグシークレット」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のUntagResource」を参照してください。

次のコード例は、update-secret-version-stage を使用する方法を示しています。

AWS CLI

例 1: シークレットを以前のバージョンに戻すには

次のupdate-secret-version-stage例では、 AWS CURRENT ステージングラベルを以前のバージョンのシークレットに移動し、シークレットを以前のバージョンに戻します。以前のバージョンの ID を検索するには、 を使用しますlist-secret-version-ids。この例では、 AWS CURRENT ラベルを持つバージョンは a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 で、 AWS PREVIOUS ラベルを持つバージョンは a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 です。この例では、 AWS CURRENT ラベルをバージョン 11111 から 2222 に移動します。 AWS CURRENT ラベルはバージョンから削除されるため、 は AWS PREVIOUS ラベルをそのバージョン (11111) update-secret-version-stageに自動的に移動します。その結果、 AWS CURRENT と AWS PREVIOUS のバージョンがスワップされます。

aws secretsmanager update-secret-version-stage \ --secret-id MyTestSecret \ --version-stage AWSCURRENT \ --move-to-version-id a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 \ --remove-from-version-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

詳細については、「Secrets Manager ユーザーガイド」の「バージョン」を参照してください。

例 2: シークレットのバージョンにアタッチされたステージングラベルを追加するには

次のupdate-secret-version-stage例では、シークレットのバージョンにステージングラベルを追加します。影響を受けるバージョンのVersionStagesレスポンスフィールドを実行してlist-secret-version-ids表示することで、結果を確認できます。

aws secretsmanager update-secret-version-stage \ --secret-id MyTestSecret \ --version-stage STAGINGLABEL1 \ --move-to-version-id EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

詳細については、「Secrets Manager ユーザーガイド」の「バージョン」を参照してください。

例 3: シークレットのバージョンにアタッチされたステージングラベルを削除するには

次のupdate-secret-version-stage例では、シークレットのバージョンにアタッチされているステージングラベルを削除します。影響を受けるバージョンのVersionStagesレスポンスフィールドを実行してlist-secret-version-ids表示することで、結果を確認できます。

aws secretsmanager update-secret-version-stage \ --secret-id MyTestSecret \ --version-stage STAGINGLABEL1 \ --remove-from-version-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

詳細については、「Secrets Manager ユーザーガイド」の「バージョン」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のUpdateSecretVersionStage」を参照してください。

次の例は、update-secret を使用する方法を説明しています。

AWS CLI

例 1: シークレットの記述を更新するには

次の update-secret の例は、シークレットの記述を更新します。

aws secretsmanager update-secret \ --secret-id MyTestSecret \ --description "This is a new description for the secret."

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの変更」を参照してください。

例 2: シークレットに関連付けられた暗号化キーを更新するには

次のupdate-secret例では、シークレット値の暗号化に使用される KMS キーを更新します。KMS キーはシークレットと同じリージョンにある必要があります。

aws secretsmanager update-secret \ --secret-id MyTestSecret \ --kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

出力:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

詳細については、「Secrets Manager ユーザーガイド」の「シークレットの変更」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のUpdateSecret」を参照してください。

次の例は、validate-resource-policy を使用する方法を説明しています。

AWS CLI

リソースポリシーを検証するには

次のvalidate-resource-policy例では、リソースポリシーがシークレットへの広範なアクセスを許可していないことを確認します。ポリシーはディスク上のファイルから読み取られます。詳細については、AWS CLI ユーザーガイドの「 ファイルからの LoadingWord パラメータ」を参照してください。 AWS CLI

aws secretsmanager validate-resource-policy \ --resource-policy file://mypolicy.json

mypolicy.json の内容:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MyRole" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }

出力:

{ "PolicyValidationPassed": true, "ValidationErrors": [] }

詳細については、「Secrets Manager ユーザーガイド」の「Secrets Manager のアクセス許可リファレンス」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のValidateResourcePolicy」を参照してください。