AWS::CloudFormation::Init
セクションを使用するCloudFormationスクリプトでS3バケットからアクセス拒否(403)で失敗したファイルをダウンロードしています。"aws s3 cp"が動作してもcfn-initはS3ファイルをダウンロードできません
AWS::IAM::InstanceProfile
を使用してs3access
という名前のIAMロールをマシンに追加しました。私は明示的にIAM役割を設定しようとしたが、それはあまりにも失敗した
[[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 :
:
[[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/*
私が使用してと思ってい
[[email protected] ~]$ aws s3 cp s3://my-bucket/test-file
.download: s3://my-bucket/test-file to ./test-file
しかしcfn-init
失敗:aws s3
作品を使用してファイルをダウンロードしますaws s3 cp s3://my-bucket/test-file ./
を直接ユーザーデータから取得しましたが、なぜAWS::CloudFormation::Init
がEC2インスタンスに割り当てられた役割を果たすのに失敗したのかを知りたいと思います。
似たような質問が1つしか見つかりませんでしたが、私がすでに行っているIAMの役割を適用するという解決策があり、cfn-init
はまだ失敗します。
テンプレートを表示した方が簡単でしょう – Raniz
cfn-initを使用する利点はほとんどありません。 CloudFormationのuserDataにaws s3のコピーロジックを入れて、s3の読み取りアクセスに関連するEC2インスタンスにロール/ポリシー権限を与えるだけで、うまくいきます。 –