使用 的 Secrets Manager 範例 AWS CLI - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

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

使用 的 Secrets Manager 範例 AWS CLI

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

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

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

主題

動作

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

如需詳細資訊,請參閱 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

下列程式碼範例示範如何使用 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 使用者指南中的輪換秘密

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

AWS CLI

範例 1:從 JSON 檔案中的憑證建立秘密

下列 create-secret 範例會透過檔案中的憑證建立機密。如需詳細資訊,請參閱 AWS CLI 使用者指南中的來自 檔案的 LoadWord 參數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:建立秘密

下列 create-secret 範例會建立具有兩個金鑰值對的機密。在命令 shell 中輸入命令時,存在命令歷史記錄被存取或公用程式存取命令參數的風險。如果 命令包含秘密的值,這是個問題。如需詳細資訊,請參閱 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 使用者指南中的身分驗證和存取控制

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

如需詳細資訊,請參閱 Secret sManager 使用者指南中的秘密

  • 如需 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 使用者指南中的建立和管理秘密

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

下列程式碼範例示範如何使用 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 使用者指南中的來自 檔案的 LoadWord 參數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範例會使用兩個鍵值對建立新的秘密版本。

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 使用者指南中的來自 檔案的 LoadWord 參數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 使用者指南中的刪除複本秘密

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

如需詳細資訊,請參閱 Secrets Manager 使用者指南中的將秘密複寫到另一個區域

下列程式碼範例示範如何使用 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 會立即輪換秘密一次,然後在兩個小時的時段內每隔八小時輪換一次。輸出會顯示輪換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 會立即輪換秘密一次,然後每 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 使用者指南中的提升複本秘密

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

AWS CLI

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

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

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

此命令不會產生輸出。

如需詳細資訊,請參閱 Secrets Manager 使用者指南中的標記秘密

範例 2:將多個標籤新增至秘密

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

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 範例會從機密中移除兩個標籤。對於每個標籤,金鑰和值都會移除。

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 版移至 22222。由於 AWS CURRENT 標籤已從版本中移除,因此 update-secret-version-stage會自動將 AWS PREVIOUS 標籤移至該版本 (11111)。影響是交換 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範例會將預備標籤新增至秘密版本。您可以執行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" }

如需詳細資訊,請參閱 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 使用者指南中的來自 檔案的 LoadWord 參數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 的許可參考