クラウドではリソースアクセス制御を施し、設定変更のようなリソースの操作、リソースへの通信の両方について、不正あるいは想定しないアクセスを遮断する必要がある。

 表1に、Azureの主なリソースアクセス制御のサービス・機能を記載した。リソースの操作権は「RBAC(Role Based Access Control)」、リソースへの通信については「Network Security Group(NSG)」や各種サービスがそれぞれ備えるファイアウォール機能を用いる。

表1 Azureのリソースアクセス制限機能
[画像のクリックで拡大表示]

 RBACは、Azure標準の認証サービス「Azure AD(Active Directory)」に登録されているユーザーに対して、操作権を「ロール」として設定するサービスだ。ユーザーは自らに割り当てられたロールで許可された操作のみを実行できる。

 RBACでは、ロール、アクセス元、アクセス先という三つの要素を設定する。ロールはアクセス先に対する操作権限で、それをアクセス元に割り当てるという構図だ。

 このうちアクセス元とアクセス先には複数の管理単位がある(図1)。

図1 RBACの管理単位
[画像のクリックで拡大表示]

 アクセス元の管理単位はAzure ADの個々のユーザー、それをグループ化したユーザーグループ、個々のリソース・サービス(サービスプリンシパル)だ。サービスプリンシパルの実体は、対象リソースへのアクセスに使用するセキュリティIDである。ユーザー、ユーザーグループ、サービスプリンシパルは「セキュリティプリンシパル」と総称する。

 一方、アクセス先の管理単位は、最小単位が「リソース」、それをグループ化した「リソースグループ」、契約単位の「サブスクリプション」という階層構造になる。複数のサブスクリプションを利用している場合は、それを束ねた「管理グループ」という単位でも管理できる。

 ロールは、簡単にいうと操作権限の定義リストである。ロールには、実行できる操作(読み取り、書き込み、削除など)が登録されている。Azureのロールは、標準で用意された「組み込みロール」のほか、ユーザーが定義する「カスタムロール」も利用できる。代表的な組み込みロールを以下に挙げる。

 所有者(owner)

 全てのリソースへのフルアクセス権を持つ。他のユーザーへアクセス権を付与できる。

 共同作成者(contributor)

 Azureリソースの全ての種類を作成および管理できる。他のユーザーへアクセス権を付与できない。

 閲覧者(reader)

 既存のAzureリソースを表示できる。操作はできない。

 上記以外にも、Azure VMの作成、起動、停止などの管理操作のみを行う「仮想マシン共同作成者」(Virtual Machine Contributor)など組み込みロールは数多く用意されている。

 ユーザーが個別に定義するカスタムロールはAzure PowerShell、Azure CLI、REST APIのいずれかを使い作成する。Azure Portalからは作成できない。さらに、管理グループにはカスタムロールを割り当てられないことにも注意が必要だ。

 RBACでは、アクセス元(セキュリティプリンシパル)、アクセス先に割り当てたロールはその下位階層に継承される。例えばサブスクリプションにロールを割り当てると、その配下のリソースグループ、リソースに継承される。

この先は有料会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら