更新IAM以允许AWS Glue连接到AWS Secrets Manager时出现问题



我正在进行一个项目,该项目要求AWS Glue Python脚本访问AWS Secrets Manager。

我试着通过IAM授予Glue权限,但我不知道怎么做;我可以看到显示Lambda有访问权限的权限字符串,但我看不到编辑它们的方法。

我试着创建一个拥有正确权限的新角色,但当我去附加时,它似乎消失了。。。

我的备用方法是通过一个小Lambda获取秘密,并通过S3将其转换为Glue。。。但这应该是直接可行的。欢迎您提供任何帮助!

您可能需要将SecretsManagerReadWrite策略添加到与AWS Glue关联的IAM角色中。请检查,我们在AWS Glue中使用了机密管理器。

将策略添加到与AWS Glue关联的IAM角色后,请添加以下代码片段以读取机密管理器的凭据:

# Getting DB credentials from Secrets Manager
client = boto3.client("secretsmanager", region_name="us-west-2")
get_secret_value_response = client.get_secret_value(
SecretId="mysecrets-info"   <--name as configured in secrets manager
)
secret = get_secret_value_response['SecretString']
secret = json.loads(secret)
uname = secret.get('username')
pwd = secret.get('password')
url = secret.get('host')

顺便说一句,您需要成为AWS管理员用户,才能修改IAM角色。如果您是超级用户,请联系管理团队将策略添加到IAM。

SecretsManagerReadWrite策略并没有只向Lambda授予权限。我认为您可能正在查看第二条语句,该语句授予Role创建Lambdas的权限(用于创建Lambda以轮换机密(。

查看Glue关于设置ETL作业的博客文章,他们还说您只需要将SecretsManagerReadWrite策略添加到Glue角色中。然而,他们也说这只是为了测试,你应该使用一个只授予所需必要权限的策略(例如,使用一个授予secretsmanager:GetSecretValue的内联策略,其中Resource是有问题的秘密(。

您实际上并没有说出您看到的错误信息。这可能有助于找出问题所在。

最新更新