Secrets Manager 範例使用 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Secrets Manager 範例使用 AWS CLI

下列程式碼範例說明如何透過 AWS Command Line Interface 搭配 Secrets Manager 使用來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境和跨服務範例中查看內容中的動作。

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

每個範例都包含一個連結 GitHub,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用batch-get-secret-value

AWS CLI

範例 1:擷取依名稱列出的一組密碼的秘密值

下列batch-get-secret-value範例會取得三個密碼的秘密值密碼。

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密碼

範例 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密碼

下列程式碼範例會示範如何使用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" }

如需詳細資訊,請參閱 Secret 管理員使用指南中的旋轉碼。

下列程式碼範例會示範如何使用create-secret

AWS CLI

範例 1:建立密碼

下列 create-secret 範例會建立具有兩個金鑰值對的機密。

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

如需詳細資訊,請參閱 Secret 管理員使用指南中的建立碼。

範例 2:從 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" }

如需詳細資訊,請參閱 Secret 管理員使用指南中的建立碼。

  • 如需 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 使用者指南中的驗證和存取控制

下列程式碼範例會示範如何使用delete-secret

AWS CLI

範例 1:刪除密碼

下列 delete-secret 範例會刪除機密。您可以在DeletionDate響應字段中恢復密碼,restore-secret直到日期和時間。若要刪除複寫至其他區域的機密,請先使用 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 }

如需詳細資訊,請參閱《密碼管理員使用指南》中的刪除碼。

範例 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 }

如需詳細資訊,請參閱《密碼管理員使用指南》中的刪除碼。

  • 如需 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" } ] }

如需詳細資訊,請參閱 Secret 管理員使用指南中的機密。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DescribeSecret中的。

下列程式碼範例會示範如何使用get-random-password

AWS CLI

產生隨機密碼

下列get-random-password範例會產生 20 個字元的隨機密碼,其中至少包含一個大寫字母、小寫字母、數字和標點符號。

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

輸出:

{ "RandomPassword": "EXAMPLE-PASSWORD" }

如需詳細資訊,請參閱 Secrets Manager 使用者指南中的建立和管理密碼

下列程式碼範例會示範如何使用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 使用者指南中的驗證和存取控制

下列程式碼範例會示範如何使用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 }

如需詳細資訊,請參閱《秘 Sec rets 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 }

如需詳細資訊,請參閱《秘 Sec rets 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 使用指南中的版本

下列程式碼範例會示範如何使用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" ] } } ] }

如需詳細資訊,請參閱 Secret 管理員使用指南中的尋找碼。

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

如需詳細資訊,請參閱 Secret 管理員使用指南中的尋找碼。

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

如需詳細資訊,請參閱《秘密管理員使用指南》中由其他服務管理的密碼

  • 如需 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" }

如需詳細資訊,請參閱《秘密管理員使用指南》中的將權限原則附加至碼。

下列程式碼範例會示範如何使用put-secret-value

AWS CLI

範例 1:將新的密碼值儲存在密碼中

下列put-secret-value範例會建立具有兩個金鑰-值配對的新密碼版本。

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

如需詳細資訊,請參閱《密碼管理員使用指南》中的修改碼。

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

如需詳細資訊,請參閱《密碼管理員使用指南》中的修改碼。

  • 如需 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": [] }

如需詳細資訊,請參閱《秘 Sec rets Manager 使用指南》中的刪除複本密碼。

下列程式碼範例會示範如何使用replicate-secret-to-regions

AWS CLI

將密碼複製到另一個區域

下列 replicate-secret-to-regions 範例會將機密複寫至 eu-west-3。複本會使用 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" } ] }

如需詳細資訊,請參閱《密管理員使用指南》中的將密碼複製到另一個區域

下列程式碼範例會示範如何使用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" }

如需詳細資訊,請參閱《密碼管理員使用指南》中的刪除碼。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考RestoreSecret中的。

下列程式碼範例會示範如何使用rotate-secret

AWS CLI

範例 1:設定和開始密碼的自動旋轉

下列rotate-secret範例會設定並啟動密碼的自動旋轉。Secrets Manager 立即旋轉一次秘密,然後在兩小時的窗口中每八個小時旋轉一次。輸出顯示由旋轉建立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" }

如需詳細資訊,請參閱 Secret 管理員使用指南中的旋轉碼。

範例 2:在旋轉間隔上設定和開始自動旋轉

下列rotate-secret範例會設定並啟動密碼的自動旋轉。Secrets Manager 立即旋轉一次秘密,然後每 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" }

如需詳細資訊,請參閱 Secret 管理員使用指南中的旋轉碼。

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

如需詳細資訊,請參閱 Secret 管理員使用指南中的旋轉碼。

  • 如需 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 使用者指南中的提升複本碼。

下列程式碼範例會示範如何使用tag-resource

AWS CLI

範例 1:將標籤新增至密碼

下列 範例顯示如何使用速記語法連接標籤。

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

此命令不會產生輸出。

如需詳細資訊,請參閱秘密管理員使用指南中的標記碼。

範例 2:若要將多個標籤新增至密碼

下列 tag-resource 範例會將兩個金鑰值標籤連接至機密。

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

此命令不會產生輸出。

如需詳細資訊,請參閱 Secret 管理員使用指南中的標記碼。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考TagResource中的。

下列程式碼範例會示範如何使用untag-resource

AWS CLI

從密碼移除標籤

下列 untag-resource 範例會從機密中移除兩個標籤。對於每個標籤,金鑰和值都會移除。

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

此命令不會產生輸出。

如需詳細資訊,請參閱 Secret 管理員使用指南中的標記碼。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UntagResource中的。

下列程式碼範例會示範如何使用update-secret-version-stage

AWS CLI

範例 1:將密碼還原至先前的版本

下列update-secret-version-stage範例會將 CURR AWS ENT 暫存標籤移至先前版本的密碼,這會將密碼還原為先前的版本。若要尋找先前版本的 ID,請使用list-secret-version-ids。在此範例中,具有「 AWS目前」標籤的版本是 A1B2C3D4-5678-90B-例子 11111,而具有「上一個」標籤的版本為 A1b2C3D4-5678-90AB-範例 22222。 AWS在此範例中,您將 AWS目前的標籤從版本 11111 移至 22222。由於「 AWS目前」標籤已從版本中移除,因此update-secret-version-stage會自動將「 AWS前一個」標籤移至該版本 (11111)。效果是交換 AWS當前版本和 AWS以前的版本。

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 使用指南中的版本

下列程式碼範例會示範如何使用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" }

如需詳細資訊,請參閱《密碼管理員使用指南》中的修改碼。

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

如需詳細資訊,請參閱《密碼管理員使用指南》中的修改碼。

  • 如需 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 的權限參考