[アップデート] SSM ドキュメントの共有がAWS RAM を使った新しい方式になりました
いわさです。
AWS Systems Manager にはドキュメントという機能があって、スクリプトやランブックを AWS リソースとして定義しておき、必要な時に SSM 経由で実行することが出来ます。
このドキュメントは AWS アカウント間で共有することが出来て、従来はドキュメント自体をパブリック化して様々な AWS アカウントから参照できるようにさせるか、あるいは共有先 AWS アカウント ID を指定して共有するか選択することが出来ました。
今朝のアップデートでこの共有方式が新しくなり、AWS Resource Access Manager (AWS RAM) 経由で共有できるようになりました。
今回こちらを確認してみたので紹介します。
新規 SSM ドキュメントを作って共有してみる
まず適当なアカウントで検証用の SSM ドキュメントを1つ作成しました。

従来はドキュメントの詳細タブからドキュメントの共有が出来たのですが、ここの表示が新しくなっていてアカウント ID を指定したりパブリック指定した共有ができなくなっていました。

代わりに RAM を作成するように記載がされていますね。
旧方式での共有も AWS API 経由では使えるのですが、後述します。
一旦は RAM を使って共有してみましょう。
RAM から新しいリソースの共有を作成します。
リソースタイプに SSM Documents が選択できるようになっていますね。

こちらを選択した場合ssm:Document用のマネージド型アクセス許可が自動選択されていました。

今回は組織外の AWS アカウントに RAM で共有したのですが、そのアカウントからは次のように SSM ドキュメントが確認できました。
共有されてからの様子は従来と同じですね。

RAM はパブリック共有は出来ないのですが、従来の SSM ドキュメントのパブリックブロック設定もコンソール上残っていました。
後述の API による旧方式でパブリック共有はできるので、それをコントロールしたい時に使うのかなと思います。

旧方式で共有していたドキュメントを RAM に移行してみる
すでにアカウント権限方式で別アカウントに共有済みのドキュメントを用意して、これを RAM に移行してみます。
移行対象のドキュメントの詳細タブを開くと、アクセス許可のところは従来の方式で表示されていますね。

ただ、アクセス許可のところに「Migrate to RAM」ボタンが表示されていました。これを使って新方式に移行できるみたいです。
「Migrate to RAM」を押すと移行対象を選ぶ画面になります。

アカウント権限方式で共有しているドキュメントの一覧から、移行するものを選びます。
AutomationAssumeRole には、移行を実行する Automation が引き受ける IAM ロールを指定します。
移行を実行すると確認ダイアログが出ました。

移行後は各ドキュメントの全バージョンが、今共有しているアカウントに対して RAM 経由で共有されると表示されています。
After migration, all versions of each document will be shared with every account that currently has access.
移行を実行してみましょう。
ドキュメントにも記載がありますが今回のアップデートで AWS-MigrateSSMDocumentSharingToRAM というランブックが追加されており、これを使って RAM 方式に移行してくれるみたいです。
上記の Migrate ボタン実行後もこのランブックが実行されました。

移行を実行するステップ(MigrateSSMDocumentSharingToRAM)が成功したあと、元々アカウント権限方式で共有していた相手に対して、RAM のリソース共有ができていることを確認できました。共有先アカウント側で RAM の承認操作が必要です。

さいごに
本日は SSM ドキュメントの共有に AWS RAM が使えるようになったので確認してみました。
この SSM ドキュメントの共有はパブリックアクセス許可による事故のリスクがあったり、あとは誰が誰に共有しているのかトレースしにくいなぁと思っていたのですが、RAM に集約されると共有状況が管理しやすくなって良いですね。
旧方式は使い続けれるみたいではありますが、移行方法も案内されているので移行してみてください。







