在AWS中,Secrets Manager提供了一种安全存储和管理敏感数据的方法。在某些情况下,可能需要将这些敏感数据存储到另一个服务,例如Parameter Store。本文将介绍一个旋转Secrets Manager secret并将其存储到Parameter Store的最佳方法。
步骤1:创建一个lambda函数,并授权它对Secrets Manager和Systems Manager中的Parameter Store进行访问。请确保您的lambda函数有足够的权限来执行这些操作。
import boto3
import os
sm = boto3.client('secretsmanager')
ssm = boto3.client('ssm')
def lambda_handler(event, context):
# Retrieve the current version of the secret from Secrets Manager
current_secret = sm.get_secret_value(SecretId=os.environ['SECRET_ID'])
# Store the secret in Parameter Store
ssm.put_parameter(Name=os.environ['PARAMETER_NAME'], Value=current_secret['SecretString'], Type='SecureString', Overwrite=True)
# Update the rotation status of the secret
sm.rotate_secret(SecretId=os.environ['SECRET_ID'])
步骤2:将您的Secrets Manager secret与参数“SECRET_ID”匹配,并将其定位到您的lambda函数中。将您的参数存储到“PARAMETER_NAME”中。
步骤3:使用您选择的事件计划程序来触发lambda函数。
使用上述代码,您可以旋转Secrets Manager secret并将其存储到Parameter Store中,以便将其作为其他服务的输入。