背景:-我有一个网关帐户(没有权限),其中创建了用户,为了访问 aws 资源,我们使用具有管理员访问权限的角色。
配置文件
[profile gateway]
region = ap-southeast-1
output = json
[profile DA]
region = ap-south-1
output = json
role_arn = arn:aws:iam::xxxxxxxxxxxxx:role/jatin
mfa_serial = arn:aws:iam::xxxxxxxxxx:mfa/atin
source_profile = gateway
凭证文件
[gateway]
aws_access_key_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
aws_secret_access_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
现在我正在尝试使用无服务器部署 --aws-profile "DA" 来部署我的 lambda,它说 AWS profile "DA" doesn't seem to be configured
但是,如果我运行 aws s3 ls --profile "DA"
它可以完美运行,所以我想配置文件和凭据的配置没有问题
答案 0 :(得分:4)
这是无服务器的一个已知问题,无服务器仅检查 ~/.aws/credentials
的配置文件,而不检查 ~/.aws/config
。
有多个关于此的无服务器论坛帖子,e.g. this one。
将您的 ~/.aws/credentials
文件更改为此,它应该可以工作:
[gateway]
aws_access_key_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
aws_secret_access_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[DA]
aws_access_key_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
aws_secret_access_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
role_arn = arn:aws:iam::xxxxxxxxxxxxx:role/jatin
mfa_serial = arn:aws:iam::xxxxxxxxxx:mfa/atin
source_profile = gateway
答案 1 :(得分:1)
更好的解决方案是指定 AWS_SDK_LOAD_CONFIG=1
而不会弄乱您的凭据:
AWS_SDK_LOAD_CONFIG=1 sls deploy