AWS CloudFormation CLI-参数问题

问题描述 投票:1回答:2

我有一个EC2实例,试图通过它执行CFN脚本,但遇到以下错误:

Error parsing parameter '--parameters': Unable to retrieve https://xxxxxxxxxxxxxxxxxxxxVPC-Parameters.json: received non 200 status code of 403

请参阅我的CLI命令:

aws cloudformation create-stack \
    --stack-name mytestVPC  \
    --template-url  https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/VPC.yaml \
    --parameters https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/VPC-Parameters.json \
    --tags  https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/VPC-Tags.json \
    --capabilities CAPABILITY_IAM

我以前使用CLI执行CFN,但这是我第一次遇到此类问题。“我的角色”可以完全访问S3的所有资源。我也验证了--parameters JSON,它是有效的。AWS CLI版本:aws-cli/1.16.102 Python/2.7.16 Linux/4.14.171-105.231.amzn1.x86_64 botocore/1.12.92当我从命令中删除--parameters--tags时,命令将成功执行。如果有人可以帮助我理解和解决此问题,那就太好了。

amazon-cloudformation
2个回答
0
投票
我做了以下事情来解决这个问题:

    以前我对角色具有内联策略,但对S3,CFN和EC2的访问权限有限,因此我删除了它,并使用现有策略授予了对S3,CFN和EC2的完全访问权限
  • 关闭了阻止公共访问(存储桶设置)
  • 将我的yaml脚本,参数和标签JSON文件设为公开
  • 然后执行了命令,它就起作用了。

    注意:这不是最佳实践,理想情况下,我正在使用的初始设置应该可以使用,因为我已经使用相同的设置通过CLI部署了CFN。理想的设置应该是/必须是:

      对角色附加了必要且必要的动作的政策
  • 由于您的EC2可以访问,所以必须启用阻止公共访问(存储桶设置)
  • 不需要公开对象(脚本/ json文件),因为您的角色可以访问特定的S3存储桶
  • 我将尝试与AWS伙计出票并进行检查,并将尽快更新此答案。

  • 0
    投票
    --parameters标志的键/值格式如下:

    ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ...

    您不能在此处使用URL。与--tags相同。

    aws cloudformation create-stack \ --stack-name mytestVPC \ --template-url https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/VPC.yaml \ --parameters ParameterKey=KeyPairName,ParameterValue=TestKey ParameterKey=SubnetID,ParameterValue=SubnetID1 \ --tags Key=MyTag,Value=MyTagValue \ --capabilities CAPABILITY_IAM

    Reference
    © www.soinside.com 2019 - 2024. All rights reserved.