1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Script実行するSSM Documentをアカウント共有する際のTips

Posted at

SSM Documentと実行IAMロール

公式サイト:
AWS Systems Manager Automation

SSM DocumentでScriptを実行するにはaws:executeScriptPythonなりのScriptを記述すれば良いわけであるが、1つの注意点として「Documentのランブック属性にロールを割り当てる」ことが必須となる。

01.jpg

ここにIAMロールを指定していない場合、SSM Documentを実行したIAMエンティティが仮にAdministratorAccess権限を持っていたとしても「権限がない」エラーで実行できないが、指定はIAMロール名ではなくIAMロールのARNであるため、他アカウントへの共有と相性が悪いことになる。

結論を言えば、指定したIAMロールARNが所属するアカウントでしか権限を得ることができないため、アカウント共有しても他のアカウントで使用できないことになる。

2023年頃までは、ここにはIAMロールのARNを固定で入れるしかできなかったが、2023年11月17日のランブック強化の際にランブックの入力パラメータとして指定することが可能になり、実行用のIAMロールARNをランブックに埋め込まないようにすることが可能になった。

他アカウントへの共有

下の図のように他のアカウントへSSM Documentを共有する。

02.jpg

共有されるSSM Documentは入力パラメータとしてIAMロールのARNを指定するようにする。

03.jpg
04.jpg

共有するアカウントでは実行用のIAMロールを作成し、実行時に入力パラメータとしてIAMロールのARNを指定するようにする。

よりセキュリティを高めるために

共有しているアカウント側を他人に操作させる場合(例えば、共有しているアカウント側を他社の人間に業務委託するような場合)、事故が起きないように仕組みを作っておくことが重要となるが、これまでの方式では入力パラメータとしてIAMロールを実行時に指定させる際、「IAMロールを取り違える」というリスクが発生する。

これを防止するには、共有しているアカウント側で新しいSSM Documentを作成し(以後、これを呼び出し用Documentと称する)、aws:executionAutomationによって共有のSSM Documentを呼び出す。

05.jpg
06.jpg

呼び出し用Documentではaws:executionAutomationのインプットとしてRuntimeParametersを選択し、入力値として共有のSSM Documentの入力パラメータである「実行用IAMロールのARN」を文字列として設定する。

07.jpg

この呼び出し用Documentを実行することで、IAMロールを取り違えすることなく共有のSSM Documentを安全に実行することができるようになるわけである。

履歴

  • 2024/9/30 初稿
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?