如何使用Boto3从AWS Secret Manager中的特定位置获取密钥的详细信息
AWS Secret Manager 可以存储和检索任何机密,包括 API 密钥,数据库凭据和其他敏感数据。Boto3是AWS Python SDK,它允许您使用Python中的AWS服务。
下面将介绍如何使用Boto3从AWS Secret Manager中的特定位置获取密钥的详细信息。
阅读更多:Python 教程
步骤1 – 创建AWS Secret Manager
首先,需要使用AWS Secret Manager创建机密。
下面是一个示例,展示如何在AWS Secret Manager中创建名为”my_secret_key”的机密。
import boto3
# 创建AWS Secret Manager客户端
client = boto3.client('secretsmanager')
# 创建机密
response = client.create_secret(
Name='my_secret_key',
SecretString='my_secret_key_value'
)
步骤2 – 从AWS Secret Manager中获取密钥
有两种方法可以从AWS Secret Manager中获取密钥的详细信息 – 通过机密名称或ARN。
通过机密名称获取密钥
使用机密名称获取密钥的详细信息:
import boto3
# 创建AWS Secret Manager客户端
client = boto3.client('secretsmanager')
# 通过机密名称获取密钥详细信息
response = client.get_secret_value(
SecretId='my_secret_key'
)
# 输出密钥的值
print(response['SecretString'])
运行上面的代码将输出:
my_secret_key_value
通过ARN获取密钥
使用ARN获取密钥的详细信息:
import boto3
# 创建AWS Secret Manager客户端
client = boto3.client('secretsmanager')
# 获取AWS Secret Manager ARN值
response = client.describe_secrets(
Filters=[
{
'Name': 'name',
'Values': [
'my_secret_key',
]
}
]
)
# 获取密钥详细信息
response = client.get_secret_value(
SecretId=response['SecretList'][0]['ARN']
)
# 输出密钥值
print(response['SecretString'])
运行上面的代码将输出:
my_secret_key_value
步骤3 – 获取密钥的所有属性
以下代码显示如何获取秘密的所有属性。
import boto3
import json
# 创建AWS Secret Manager客户端
client = boto3.client('secretsmanager')
# 通过机密名称获取机密信息
response = client.describe_secret(
SecretId='my_secret_key'
)
# 输出所有属性
print(json.dumps(response, indent=2))
输出结果展示了密钥的所有属性和详细信息:
{
"ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:my_secret_key-Z5H7EL",
"Name": "my_secret_key",
"CreatedDate": "2022-02-03T06:41:07.888000+00:00",
"VersionIdsToStages": {
"EXAMPLE3-1Z22ZXY": [
"AWSPREVIOUS"
],
"EXAMPLE1-90Q8RZ": [
"AWSCURRENT"
]
},
"SecretVersionsToStages": {
"EXAMPLE3-1Z22ZXY": [
"AWSPREVIOUS"
],
"EXAMPLE1-90Q8RZ": [
"AWSCURRENT"
]
},
"Tags": [
{
"Key": "Environment",
"Value": "Test"
}
],
"SecretVersionsToReplicate": [],
"OwningService": "secretsmanager.amazonaws.com",
"RotationEnabled": false,
"RotationLambdaARN": null,
"RotationRules": {
"AutomaticallyAfterDays": 0
},
"LastAccessedDate": "2022-02-03T06:41:07.888000+00:00",
"DeletedDate": null
}
步骤4 – 更新密钥
以下代码显示如何更新密钥的值。
import boto3
# 创建AWS Secret Manager客户端
client = boto3.client('secretsmanager')
# 更新机密
response = client.update_secret(
SecretId='my_secret_key',
SecretString='new_secret_key_value'
)
# 输出更新后的密钥值
response = client.get_secret_value(
SecretId='my_secret_key'
)
print(response['SecretString'])
运行上面的代码将输出:
new_secret_key_value
结论
本文介绍了如何使用Boto3从AWS Secret Manager中获取密钥的详细信息。通过以上步骤,可以方便地访问和更新任何存储在AWS Secret Manager中的机密。同时,可以使用类似的方法访问和更新其他AWS服务中的数据。