web-dev-qa-db-ja.com

cloudformationスタックデプロイメントの権限を生成する

CloudFormationスタックがあります。これはスクリプトによって頻繁に更新されます(起動構成用にソースAMIを変更します)。同じスクリプトでデプロイし、非特権のユーザー/インスタンスの役割で実行したいと思います。現在、すべての更新は管理者ユーザーによって行われ、必要以上の特権があります。

私の最初のアプローチは、試行錯誤することでした。ログで不足しているアクセス許可を確認し、1つずつ追加してください。時間がかかり、生産性にはほど遠いです。

CloudFormationテンプレートに基づいてアクセス許可のリストを生成する方法と、スタック自体を更新するためのアクセス許可が必要だと考えています。

私の2番目の考えは、デプロイが成功したCloudTrailログを処理して、そこからアクションとリソースを抽出することです。

すでにそれを行う方法があるかもしれません、そして私はre:Inveting thewheel?

7
stimur

リソースの更新に必要なIAMアクションについては、IAMドキュメントを参照することをお勧めします。たとえば、LaunchConfigurationリソースの ImageId プロパティを更新するには、LaunchConfigurationリソースを置き換える必要があります。次に、 pdateAutoScalingGroup アクションを介してAutoScalingGroupを新しいLaunchConfigurationで更新する必要があります。

CloudFormationテンプレートの権限を生成するスクリプトは、各リソースに対して可能なIAMアクションのリストを生成する可能性があるため、ドキュメントを直接参照することをお勧めしますが、その時点でリストを確認して、「このリソース(AutoScalingGroupなど)について」と言う必要があります。どのような行動を取りたいですか?」

ドキュメントを直接参照するという私のポイントは、試行錯誤よりも速く、ツールが提案するのと同じくらい速いです。

ただし、本当に興味深いアイデアは、ドキュメントを直接参照するよりも高速なのは、CFテンプレートを表示しているときにリソースタイプに対して可能なアクションを表示するエディター拡張機能です。私は最近そのような拡張に取り組んでいます、私がそれを完了するならば、ここにリンクを貼り付けます。

1
Joe Perks