Azure Computer Gallery の direct shared gallery を利用して、別テナントや別サブスクリプションに仮想マシンのイメージを共有する

azure
Published: 2022-07-27

はじめに

Azure の仮想マシンの自作イメージを共有するサービスである Azure Compute Gallery に direct shared gallery という方式が追加されました。direct shared gallery を利用すると、Azure AD のテナント ID や サブスクリプション ID を指定するだけで自作のイメージを共有できます。

Share a gallery with subscriptions or tenants (preview)

これまで「自 Azure AD テナント上の Azure サブスクリプション」や「他の Azure AD テナント上の Azure サブスクリプション」に対して Compute Gallery 上のイメージを共有する場合には、RBAC または Lighthouse を利用して、イメージを使いたいユーザに対して Compute Gallery への読み取り権限を付与する必要がありました。

この仕様によって、特にテナントを超えてイメージを共有する場合には、イメージを共有したいだけなのに、他の Azure AD テナントのユーザをゲストとして招待したり、共有専用のサービスプリンシパルを Azure AD に作成したりといった作業が必要でした。

参考:

ですが、プレビューになった direct shared gallery の機能を利用すると、共有したい相手のサブスクリプション ID または Azure AD テナント ID さえ知っていれば、Azure Compute Gallery 上の操作だけでイメージを共有できます。RBAC による権限の付与が不要になるので、サブスクリプションやテナントを超えたゴールデンイメージの運用が格段にやりやすくなります。

それではいつも通り「百聞は一見に如かず」ということで、試した結果をまとめます。

2022年7月現在、direct shared gallery は招待制パブリックプレビューです。https://aka.ms/directsharedgallery-preview から利用申請する必要があります。申請が通ると、Compute Gallery の sharing method で RBAC + share directly を選択できるようになります。

共有方法の選択画面

RBAC + shara directly を選択すると、共有先に次の4つを選択できるようになります

  1. 現在の Azure AD 配下で自分が権限を持っているサブスクリプション(候補がプルダウンに表示される)
  2. 自分が所属している Azure AD (候補がプルダウンに表示される)
  3. 任意の Azure サブスクリプション ID(自由記入欄に ID を入力する)
  4. 任意の Azure AD(自由記入欄に ID を入力する)

今回は 4 を試します。“Tenant outside of my organization” の入力欄に、イメージを共有したい Azure AD の ID を入力します。

共有先の指定画面

一般化したイメージの用意

Compute Gallery が用意できたので、格納するイメージを用意します。今回の検証では、Windows Server 2022 の C ドライブ配下に適当なファイルを配置した上で sysprep したサーバをイメージ化します。

イメージ元仮想マシンの状態

sysprep した仮想マシンをキャプチャして Compute Gallery に格納します。操作は従来の Compute Gallery と同じです。ただし、Azure Computer Gallery の名前と VM イメージ定義の名前が、共有先に表示されるイメージの ID と名前に利用されるので、共有する相手に見られても OK な内容を入力しましょう。

また、イメージの複製先には注意が必要です。direct shared gallery 方式で共有したとしても、共有されたイメージを利用できるのはイメージが複製されたリージョンだけです。例えば、イメージの複製先が東日本リージョンだけの場合、イメージの共有を受けた側は共有されたイメージを利用して西日本リージョンに仮想マシンを作れません。

複製先の例

共有先での仮想マシンの作成

イメージの登録とリージョンへの複製が完了次第、共有された側にイメージが表示されます。共有先の Azure AD ユーザで Azure ポータルにログインして仮想マシンを作成しようとすると、イメージを選択する画面に Direct Shared Image が表示されます。

表示されたイメージ

イメージの名前に共有元の Azure Computer Gallery の名前と VM イメージ定義の名前が含まれていることが分かります。共有先から見えるイメージの ID は “/SharedGalleries/<サブスクリプション ID>-<Compute Gallery 名>/Images/< VM イメージ定義名>/Versions/latest” になります。前述した通り命名は慎重に。

なお、前述の複製先リージョンの縛りがあるので、Azure ポータルで direct shared Gallery のイメージを利用する場合には、共有元がイメージを複製したリージョンを先に選択した状態で、イメージを選択する画面に移行する必要があります。イメージが複製されていないリージョンを選択した状態でイメージを選択する画面に移行すると、direct shared gallery なイメージは表示されません。ご注意ください。

direct shared gallery で共有されたイメージを利用して作成した仮想マシンにログインすると、C ドライブ直下にファイルが保存されています。無事にテナントを超えてイメージを共有できました。

イメージから作成した仮想マシンの状態

まとめ

プレビューになった direct shared gallery を利用して、Azure Computer Gallery のイメージを別テナントに共有しました。Azure Computer Gallery の設定だけで共有ができるので、これまでと比較して格段に簡単に別テナント・別サブスクリプションにイメージを共有しやすくなりました。一般公開が待ち遠しいです。