我有一个AWS Glue Python脚本,用于连接到Aurora Mysql数据库。为此,我尝试使用AWS SecretManager,以便不必在脚本中对数据库凭证进行硬编码。
虽然我能够成功使用secretmanager并在我的AWS Glue脚本中使用它来连接到RDS,但我看到凭据不是秘密的,并且如果我打印了一个保存数据库凭据的变量的内容,我就能在cloudwatch日志中查看密码,用户名等。
请在此处找到代码段:
# Getting DB credentials from Secrets Manager
client = boto3.client("secretsmanager", region_name="us-west-2")
get_secret_value_response = client.get_secret_value(
SecretId="RDS_Dev_Cluster"
)
secret = get_secret_value_response['SecretString']
secret = json.loads(secret)
db_username = secret.get('username')
db_password = secret.get('password')
db_url = secret.get('host')
print db_username
print db_password
print db_url
有什么方法可以加密用户名/密码凭证。我们可以使用AWS KMS吗?我没有在其中尝试过KMS,但想在使用其他AWS服务之前获得建议。如果没有,除了secretmanager之外,我们如何掩盖数据库凭据。
谢谢
答案 0 :(得分:0)
AWS文档指出,AWS Secret Manager始终存储加密的密钥,它通常会透明地处理解密。当您指定AWS Secret Manager应使用的KMS密钥时。 transparently decrypts and returns them to you in plaintext
因此,基本上,您看到的解密结果只是减去了使KMS API解密所需的调用。