[アップデート] AMI が Organizations単位、OU単位で共有可能になりました!

AMIのOrganizations/OU間共有が超楽ちんになったぞ
2021.10.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ちゃだいん(@chazuke4649)です。

AMI が Organizations単位、OU単位で共有可能になりました!

Amazon EC2 now supports sharing Amazon Machine Images across AWS Organizations and Organizational Units

どういうこと?

いままでは、AMIを特定のAWSアカウントIDとのみ、共有することができました。その場合、AMIをOrganizations/OUと共有するにはそれぞれ各AWSアカウントIDとAMIの共有を明示的に登録する必要がありました。例えば、Organizations配下の20AWSアカウントとAMIを共有したい場合は、20個のIDをAMIに対し登録しなければなりませんでした。

今回のアップデートにより、Organizations単位や、OU単位でAMIの共有が可能となりました。Organizationsや対象のOUに変更(AWSアカウントの追加や削除)があると、AMIの共有は自動的に変更されます。AMIのOrganizations/OUとの共有が一元的・自動的に管理でき、とても楽になりました。

上図は公式ドキュメントより引用: Share an AMI with specific organizations or organizational units - Amazon Elastic Compute Cloud

注意点

詳細はドキュメントをご確認いただく必要がありますが、以下に一部抜粋します。

  • カスタマー定義タグは共有されません
  • CLI と SDK からのみ対応可能。本記事執筆時点ではマネジメントコンソールではサポートされていません
  • 現時点では AWS CLI v1 のみ(1.21.7api-change:ec2: Support added for AMI sharing with organizations and organizational units in ModifyImageAttribute API
    • ただし、v2も速やかにアップデートされるかと思われるので、以降最新情報は CHANGELOGをご確認ください

2022/04/04追記)マネジメントコンソールとAWS CLI v2もサポートされているとのことです。

やってみた

今回検証する内容です。先程の図に要素を追加しました。

  • AWSアカウント111111111111にてAMIを作成し共有を実行
  • 共有先はOUWorkloadsOUとする
  • WorkloadsOU配下のAWSアカウント222222222222にて共有されたかどうか、確認する
  • WorkloadsOU配下ではないAWSアカウント333333333333にて共有されていないかどうか、確認する

では実際にやっていきます。

1. AMIを作成し、共有する

すでに起動しているEC2からAMIを作成します。その時についでにカスタマー定義タグもつけておきます。

AMIの作成を実行しました。

すると、Owned by me の中に作成されたAMI ami-....6694 が確認できます。

次に、ドキュメントに記載のコマンドを実行します。

$ aws ec2 modify-image-attribute \
--image-id ami-065839f8ed1b26694 \
--launch-permission "Add=[{OrganizationalUnitArn=arn:aws:organizations::999999999999:ou/o-example/ou-example}]" \

※ OUのARNはダミーです

2. 共有先OU配下のAWSアカウントにて共有されているかどうか確認する

対象のAWSアカウント22222222222にログインし、AMIコンソールを開きます。Private Imageを選択すると、以下の通りAMI-....6694が共有されてることが確認できました。

ちなみに、タグはやはり共有されていません。

3. 共有先OU配下"ではない"AWSアカウントにて共有されて"いないかどうか"確認する

対象外のAWSアカウント333333333333にログインして先程の同様の画面を開きます。すると、こちらには共有されていないことが確認できました。

終わりに

Organizations環境におけるAMIの共有がとても楽チンになりました。特に問題なければOrganizations単位/OU単位で共有すれば以後AWSアカウントが追加された場合に、追加対応が不要となります。各ワークロードで使用するAMIを一元的に作成・管理・配布している方はとても嬉しいアップデートですね。使っていきましょう!

それではこの辺で。ちゃだいん(@chazuke4649)でした。