AWS CLI を使用する Secrets Manager の例 - AWS Command Line Interface

AWS CLI を使用する Secrets Manager の例

次のコード例は、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": [] }

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

例 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": [] }

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

  • 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 ユーザーガイド」の「ファイルから 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 ユーザーガイド」の「シークレットを検索する」を参照してください。

例 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 ユーザーガイド」の「シークレットを検索する」を参照してください。

例 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 ユーザーガイド」の「他のサービスによって管理されるのシークレット」を参照してください。

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

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

AWS CLI

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

次の put-resource-policy の例では、ポリシーが広範なアクセスをシークレットに提供していないことを最初に確認しながら、シークレットに許可ポリシーを追加しています。このポリシーは、ファイルから読み込まれます。詳細については、「AWS CLI ユーザーガイド」の「ファイルから 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 ユーザーガイド」の「ファイルから 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: シークレットを以前のバージョンに戻すには

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

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

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

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 ユーザーガイド」の「ファイルから 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」を参照してください。