0
我有一個CloudFormation腳本,它使用AWS::CloudFormation::Init
部分從S3拒絕訪問(403)失敗的S3桶中下載文件。即使「aws s3 cp」能夠正常工作,cfn-init仍然無法下載S3文件
我已經使用AWS::IAM::InstanceProfile
向機器添加了名爲s3access
的IAM角色。與aws s3
作品下載文件:
[[email protected] ~]$ aws s3 cp s3://my-bucket/test-file
.download: s3://my-bucket/test-file to ./test-file
但cfn-init
失敗:
[[email protected] ~]$ sudo /opt/aws/bin/cfn-init -v --stack test --resource EC2 --region us-east-2 Error occurred during build: Failed to retrieve https://s3.us-east-2.amazonaws.com/my-bucket/test-file: HTTP Error 403 :
我想明確地設置IAM作用,但仍失敗:
[[email protected] ~]$ sudo /opt/aws/bin/cfn-init -v --stack test --resource EC2 --region us-east-2 --role=s3access AccessDenied: User: arn:aws:sts::196375698259:assumed-role/s3access/i-044499612c92b50f5 is not authorized to perform: cloudformation:DescribeStackResource on resource: arn:aws:cloudformation:us-east-2:196375698259:stack/test/*
我想使用的aws s3 cp s3://my-bucket/test-file ./
直接來自用戶數據,但我想知道爲什麼AWS::CloudFormation::Init
未能承擔分配給EC2實例的角色。
我發現只有一個類似的問題 - How can I access protected S3 files in a CFN script?,但是解決方案是應用IAM角色,我已經完成並且cfn-init
仍然失敗。
如果您向我們展示您的模板會更容易 – Raniz
我發現使用cfn-init幾乎沒有什麼優勢。您可以輕鬆地將您的aws s3複製邏輯放入CloudFormation的userData中,併爲您的EC2實例提供與s3讀取權限關聯的角色/策略權限,這樣可以很好地工作。 –