如何使用Boto3从AWS秘密管理器中获取以明文保存的密钥

如何使用Boto3从AWS秘密管理器中获取以明文保存的密钥

在使用AWS平台进行应用程序开发时,常常需要使用各种各样的密钥(例如 API 密钥和访问密钥等)来保证应用程序的安全性和稳定性。但是,以明文方式在代码中保存密钥不是一个安全的做法。幸运的是,AWS 提供了一个能够解决这个问题的服务,那就是 AWS Secrets Manager。本文将会阐述如何使用 Boto3(AWS Python SDK)从 AWS 秘密管理器中获取以明文保存的密钥。

阅读更多:Python 教程

第一步:创建一个 AWS 秘密管理器

在使用 AWS Secrets Manager 之前,必须在 AWS 中创建一个秘密存储库。用户可以登录 AWS 控制台并选择 Secrets Manager,创建一个新的 Secret。

接下来,选择“其他秘密类型”中的“凭据”。输入凭据的相关信息,例如鉴别程序和应用程序所需的用户名和密码等敏感信息。然后,设置“Secret name”(秘密名称),这个名称将用于后面的代码中进行引用。

如果需要获得更详细的创建 AWS 秘密管理器的步骤信息,请参见 AWS 官方文档。

第二步:使用 Boto3 访问 AWS 秘密管理器

在创建 AWS 秘密管理器后,现在开始使用 Boto3 访问它。AWS SDK 使得从密钥中检索信息变得方便,而且不需要再直接从代码中提取密钥并进行明文保存了。

下面是一个使用 Python 的示例代码:

import boto3
import json

secret_name = "your-secret-name"
region_name = "us-east-1"

# Create a SecretsManager client
client = boto3.client('secretsmanager', region_name=region_name)

# Get secret value
response = client.get_secret_value(
    SecretId=secret_name
)

secret = response['SecretString']
secret_dict = json.loads(secret)

首先,使用 boto3 创建一个 AWS 客户端。secret_name 变量将存储我们 AWS 秘密管理器中的秘密名称。region_name 变量将指定 AWS 区域。

接下来,使用 get_secret_value 方法从 AWS 秘密管理器检索存储在秘密中的值。然后,将获取到的 JSON 字符串转换成 Python 字典以方便我们获取秘密信息的值。

第三步:使用已检索的秘密信息

现在已经成功从 AWS 秘密管理器检索到了以明文方式保存的密钥。可以将密钥信息用于我们的应用程序中(例如,数据库连接字符串或者 API 密钥),而无需将它们以明文方式暴露在代码中。

下面是一个使用检索的密钥信息的示例代码:

import psycopg2

# Use retrieved secret data
database = secret_dict['database']
username = secret_dict['username']
password = secret_dict['password']
host = secret_dict['host']
port = secret_dict['port']

# Create a database connection
conn = psycopg2.connect(
    dbname=database,
    user=username,
    password=password,
    host=host,
    port=port
)

# Do something with the database connection
...

这个示例代码展示了检索到的数据库连接字符串的使用方法。使用密钥信息,代码可以创建一个 PostgreSQL 数据库连接。

结论

AWS Secrets Manager 提供了一种方便且安全的方法来管理和检索以明文方式保存的密钥。结合 Boto3 SDK,可以轻松地检索保存在 Secrets Manager 中的密钥,而无需公开以明文方式在应用程序中使用这些密钥。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程