【发布时间】:2021-06-24 08:51:07
【问题描述】:
我有一个 Fargate 实例,它使用 AWS 机密来获取数据库凭据,但它无法读取凭据。
如果我在本地提供密钥,则可以在 Lambda 中获取机密以及在本地运行它。我可以打印和记录这些值,并且代码在最后两种情况下执行。 fargate docker 镜像、lambda 和本地测试中用于获取秘密的库是相同的(除了需要在本地提供访问密钥)
我正在使用 Terraform 创建我的 EC2,我给我的 ec2 带来了这些麻烦。
"Action": [
"secretsmanager:GetResourcePolicy",
"secretsmanager:GetSecretValue",
"secretsmanager:DescribeSecret",
"secretsmanager:ListSecretVersionIds"
],
"Effect": "Allow",
"Resource": [
"arn:aws:secretsmanager:eu-west-2:xxxxxxx:secret:xxx-xxx-xxx"
]
我得到的错误很简单
Unable to locate credentials
这是我的第一个 Fargate 应用。我的运行状况检查有效,并且代码一直执行到此为止。
我的代码是这样的
endpoint_url = "https://xxxxxx.eu-west-2.amazonaws.com"
secret_name = secret
region_name = "eu-west-2"
logger.info("Pre secrets")
try:
session = boto3.session.Session()
except Exception as e:
logger.info(e)
client = session.client(
service_name="secretsmanager",
region_name=region_name,
endpoint_url=endpoint_url,
)
有什么我可能忽略的需要看的吗?
谢谢,
【问题讨论】:
标签: python-3.x amazon-web-services terraform aws-fargate