使用的 Secrets Manager 示例 AWS CLI - AWS SDK代码示例

AWS 文档 AWS SDK示例 GitHub 存储库中还有更多SDK示例

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用的 Secrets Manager 示例 AWS CLI

以下代码示例向您展示了如何使用 with Secrets Manager 来执行操作和实现常见场景。 AWS Command Line Interface

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示如何使用 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": [] }

有关更多信息,请参阅 S ecrets 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": [] }

有关更多信息,请参阅 S ecrets 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" }

有关更多信息,请参阅 S ecrets Manager 用户指南中的轮换密钥

以下代码示例演示如何使用 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:创建密钥

以下 create-secret 示例将创建包含两个键值对的密钥。当您在命令 shell 中输入命令时,存在访问命令历史记录或实用程序可以访问您命令参数的风险。如果命令包含密钥的值,则会引起人们的注意。有关更多信息,请参阅 Secrets Man ager 用户指南中的降低使用命令行工具存储密钥的风险

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 用户指南》中的创建密钥

以下代码示例演示如何使用 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" }

有关更多信息,请参阅 S ecrets 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 }

有关更多信息,请参阅《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 用户指南》中的删除密钥

以下代码示例演示如何使用 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 用户指南》中的密钥

以下代码示例演示如何使用 get-random-password

AWS CLI

生成随机密码

以下get-random-password示例生成一个长度为 20 个字符的随机密码,其中至少包含一个大写字母、小写字母、数字和标点符号。

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

输出:

{ "RandomPassword": "EXAMPLE-PASSWORD" }

有关更多信息,请参阅 Secret s 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}" }

有关更多信息,请参阅 S ecrets 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 }

有关更多信息,请参阅《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 用户指南》中的检索密钥

以下代码示例演示如何使用 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" }

有关更多信息,请参阅 S ecrets 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 用户指南》中的由其他服务管理的密钥

以下代码示例演示如何使用 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" }

有关更多信息,请参阅 S ecrets Manager 用户指南中的为密钥附加权限策略

以下代码示例演示如何使用 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用户指南》中的从文件加载 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 用户指南》中的修改密钥

以下代码示例演示如何使用 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": [] }

有关更多信息,请参阅 Secret s 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" } ] }

有关更多信息,请参阅 S ecrets 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 用户指南》中的删除密钥

以下代码示例演示如何使用 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" }

有关更多信息,请参阅 S ecrets 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" }

有关更多信息,请参阅 S ecrets 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" }

有关更多信息,请参阅 S ecrets Manager 用户指南中的轮换密钥

以下代码示例演示如何使用 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" }

有关更多信息,请参阅 Secret s 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"}]'

此命令不生成任何输出。

有关更多信息,请参阅 S ecrets Manager 用户指南中的标签密钥

以下代码示例演示如何使用 untag-resource

AWS CLI

从密钥中移除标签

以下 untag-resource 示例将从密钥中删除两个标签。对于每个标签,键和值都会被删除。

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

此命令不生成任何输出。

有关更多信息,请参阅 S ecrets Manager 用户指南中的标签密钥

以下代码示例演示如何使用 update-secret-version-stage

AWS CLI

示例 1:将密钥还原为先前版本

以下update-secret-version-stage示例将 AWS CURRENT暂存标签移动到密钥的先前版本,这会将密钥还原为先前的版本。要查找先前版本的 ID,请使用list-secret-version-ids。在此示例中,带有标签的版本是 a1b2c3d4-5678-90ab-cdef-,带有 AWS CURRENT标签的版本是 a1b2c3d4-5678-90ab-cdef-。EXAMPLE11111 AWS PREVIOUS 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" }

有关更多信息,请参阅 S ecrets 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" }

有关更多信息,请参阅 S ecrets 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" }

有关更多信息,请参阅 S ecrets 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 用户指南》中的修改密钥

以下代码示例演示如何使用 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 权限参考