使用的 Secrets Manager 示例 Amazon CLI - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用的 Secrets Manager 示例 Amazon CLI

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

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

场景是展示如何通过在同一服务中调用多个函数来完成特定任务任务的代码示例。

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

主题

操作

以下代码示例演示如何使用 batch-get-secret-value

Amazon 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 用户指南中的批量检索一组Amazon密钥

示例 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 用户指南中的批量检索一组Amazon密钥

以下代码示例演示如何使用 cancel-rotate-secret

Amazon 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 的详细信息,请参阅Amazon CLI 命令参考CancelRotateSecret中的。

以下代码示例演示如何使用 create-secret

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

有关更多信息,请参阅《Secrets Manager 用户指南》中的创建密钥

示例 2:根据 JSON 文件中的凭证创建密钥

以下 create-secret 示例将根据文件中的凭证创建密钥。有关更多信息,请参阅 Amazon CLI 用户指南中的从文件加载Amazon 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 用户指南》中的创建密钥

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考CreateSecret中的。

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

Amazon 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

Amazon 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 用户指南》中的删除密钥

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考DeleteSecret中的。

以下代码示例演示如何使用 describe-secret

Amazon 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 的详细信息,请参阅Amazon CLI 命令参考DescribeSecret中的。

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

Amazon CLI

生成随机密码

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

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

输出:

{ "RandomPassword": "EXAMPLE-PASSWORD" }

有关更多信息,请参阅 Secret s Manager 用户指南中的创建和管理密

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetRandomPassword中的。

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

Amazon 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 的详细信息,请参阅Amazon CLI 命令参考GetResourcePolicy中的。

以下代码示例演示如何使用 get-secret-value

Amazon 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 的详细信息,请参阅Amazon CLI 命令参考GetSecretValue中的。

以下代码示例演示如何使用 list-secret-version-ids

Amazon 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

Amazon 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 的详细信息,请参阅Amazon CLI 命令参考ListSecrets中的。

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

Amazon CLI

向密钥添加基于资源的策略

以下 put-resource-policy 示例将向密钥添加权限策略,首先检查该策略是否不提供对该密钥的广泛访问权限。该策略是从文件中读取的。有关更多信息,请参阅 Amazon CLI 用户指南中的从文件加载Amazon 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 用户指南中的为密钥附加权限策略

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考PutResourcePolicy中的。

以下代码示例演示如何使用 put-secret-value

Amazon 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 示例将根据文件中的凭证创建新版本密钥。有关更多信息,请参阅 Amazon CLI 用户指南中的从文件加载Amazon 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 的详细信息,请参阅Amazon CLI 命令参考PutSecretValue中的。

以下代码示例演示如何使用 remove-regions-from-replication

Amazon 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

Amazon CLI

将密钥复制到另一个区域

以下 replicate-secret-to-regions 示例将密钥复制到 eu-west-3。副本使用 Amazon 托管密钥加密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

Amazon 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 的详细信息,请参阅Amazon CLI 命令参考RestoreSecret中的。

以下代码示例演示如何使用 rotate-secret

Amazon 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 用户指南中的轮换密钥

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考RotateSecret中的。

以下代码示例演示如何使用 stop-replication-to-replica

Amazon 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

Amazon 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 用户指南中的标签密钥

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考TagResource中的。

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

Amazon CLI

从密钥中移除标签

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

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

此命令不生成任何输出。

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

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考UntagResource中的。

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

Amazon CLI

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

以下update-secret-version-stage示例将 CURREN Amazon T 暂存标签移动到密钥的先前版本,这会将密钥还原为先前的版本。要查找先前版本的 ID,请使用list-secret-version-ids。在本示例中,带有 Amazon当前标签的版本是 a1b2c3d4-5678-90ab-CDEF-example11111,带有先前标签的版本是 a1b2c3d4-5678-90ab-cdef-example22222。 Amazon在本示例中,您将 Amazon当前标签从版本 11111 移动到 22222。由于 Amazon当前标签已从版本中移除,因此update-secret-version-stage会自动将 Amazon之前的标签移至该版本 (11111)。结果是交换了 Amazon当前版本和 Amazon以前的版本。

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

Amazon 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 的详细信息,请参阅Amazon CLI 命令参考UpdateSecret中的。

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

Amazon CLI

验证资源策略

以下validate-resource-policy示例检查资源策略是否未授予对密钥的广泛访问权限。策略是从磁盘上的文件中读取的。有关更多信息,请参阅 Amazon CLI 用户指南中的从文件加载Amazon 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 权限参考