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密钥。
-
有关API详细信息,请参阅 “BatchGetSecretValue AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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 用户指南中的轮换密钥。
-
有关API详细信息,请参阅 “CancelRotateSecret AWS CLI
命令参考”。
-
以下代码示例演示如何使用 create-secret
。
- AWS CLI
-
示例 1:使用JSON文件中的凭据创建密钥
以下
create-secret
示例将根据文件中的凭证创建密钥。有关更多信息,请参阅《AWS CLI用户指南》中的从文件加载 AWS CLI参数。aws secretsmanager create-secret \ --name
MyTestSecret
\ --secret-stringfile://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 用户指南》中的创建密钥。
-
有关API详细信息,请参阅 “CreateSecret AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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 用户指南中的身份验证和访问控制。
-
有关API详细信息,请参阅 “DeleteResourcePolicy AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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-days7
输出:
{ "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详细信息,请参阅 “DeleteSecret AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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详细信息,请参阅 “DescribeSecret AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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 用户指南中的创建和管理密钥。
-
有关API详细信息,请参阅 “GetRandomPassword AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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 用户指南中的身份验证和访问控制。
-
有关API详细信息,请参阅 “GetResourcePolicy AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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-stageAWSPREVIOUS
输出:
{ "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详细信息,请参阅 “GetSecretValue AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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 用户指南中的版本。
-
有关API详细信息,请参阅 “ListSecretVersionIds AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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详细信息,请参阅 “ListSecrets AWS CLI
命令参考”。
-
以下代码示例演示如何使用 put-resource-policy
。
- AWS CLI
-
向密钥添加基于资源的策略
以下
put-resource-policy
示例将向密钥添加权限策略,首先检查该策略是否不提供对该密钥的广泛访问权限。该策略是从文件中读取的。有关更多信息,请参阅《AWS CLI用户指南》中的从文件加载 AWS CLI参数。aws secretsmanager put-resource-policy \ --secret-id
MyTestSecret
\ --resource-policyfile://mypolicy.json
\ --block-public-policymypolicy.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 用户指南中的为密钥附加权限策略。
-
有关API详细信息,请参阅 “PutResourcePolicy AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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-stringfile://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详细信息,请参阅 “PutSecretValue AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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-regionseu-west-3
输出:
{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-1a2b3c", "ReplicationStatus": [] }
有关更多信息,请参阅 Secret s Manager 用户指南中的删除副本密钥。
-
有关API详细信息,请参阅 “RemoveRegionsFromReplication AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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-regionsRegion=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 用户指南中的将密钥复制到其他区域。
-
有关API详细信息,请参阅 “ReplicateSecretToRegions AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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详细信息,请参阅 “RestoreSecret AWS CLI
命令参考”。
-
以下代码示例演示如何使用 rotate-secret
。
- AWS CLI
-
示例 1:配置并启动密钥的自动轮换
以下
rotate-secret
示例配置并启动密钥的自动轮换。Secrets Manager 会立即轮换一次密钥,然后在两小时内每八小时轮换一次密钥。输出显示VersionId
了通过轮换创建的新密钥版本的。aws secretsmanager rotate-secret \ --secret-id
MyTestDatabaseSecret
\ --rotation-lambda-arnarn: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-arnarn: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 用户指南中的轮换密钥。
-
有关API详细信息,请参阅 “RotateSecret AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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 用户指南中的提升副本密钥。
-
有关API详细信息,请参阅 “StopReplicationToReplica AWS CLI
命令参考”。
-
以下代码示例演示如何使用 tag-resource
。
- AWS CLI
-
示例 1:为密钥添加标签
以下 示例说明了如何使用速记语法附加标签。
aws secretsmanager tag-resource \ --secret-id
MyTestSecret
\ --tagsKey=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 用户指南中的标签密钥。
-
有关API详细信息,请参阅 “TagResource AWS CLI
命令参考”。
-
以下代码示例演示如何使用 untag-resource
。
- AWS CLI
-
从密钥中移除标签
以下
untag-resource
示例将从密钥中删除两个标签。对于每个标签,键和值都会被删除。aws secretsmanager untag-resource \ --secret-id
MyTestSecret
\ --tag-keys '[ "FirstTag", "SecondTag"]
'此命令不生成任何输出。
有关更多信息,请参阅 S ecrets Manager 用户指南中的标签密钥。
-
有关API详细信息,请参阅 “UntagResource AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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-stageAWSCURRENT
\ --move-to-version-ida1b2c3d4-5678-90ab-cdef-EXAMPLE22222
\ --remove-from-version-ida1b2c3d4-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-stageSTAGINGLABEL1
\ --move-to-version-idEXAMPLE1-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-stageSTAGINGLABEL1
\ --remove-from-version-ida1b2c3d4-5678-90ab-cdef-EXAMPLE11111
输出:
{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }
有关更多信息,请参阅 S ecrets Manager 用户指南中的版本。
-
有关API详细信息,请参阅 “UpdateSecretVersionStage AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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-idarn: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详细信息,请参阅 “UpdateSecret AWS CLI
命令参考”。
-
以下代码示例演示如何使用 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详细信息,请参阅 “ValidateResourcePolicy AWS CLI
命令参考”。
-