Azure Digital Twins でのロール ベースのアクセス制御
重要
Azure Digital Twins サービスの新しいバージョンがリリースされました。 新しいサービスの拡張された機能に照らして、元の Azure Digital Twins サービス (このドキュメント セットで説明) は廃止されました。
新しいサービスのドキュメントを表示するには、アクティブな Azure Digital Twins のドキュメントを参照してください。
Azure Digital Twins では、空間グラフ内の特定のデータ、リソース、アクションへのアクセスを正確に制御できます。 これは、ロールベースのアクセス制御 (RBAC) と呼ばれるきめ細かいロールとアクセス許可の管理によって行われます。 RBAC は ロール と ロール割り当て により構成されます。 ロールによってアクセス許可のレベルが特定されます。 ロール割り当てによってロールがユーザーまたはデバイスに関連付けられます。
RBAC を使用し、次にアクセス許可を付与できます。
- ユーザーです。
- デバイス。
- サービス プリンシパル。
- ユーザー定義関数。
- あるドメインに属するすべてのユーザー。
- テナント。
アクセスの程度を微調整することもできます。
RBAC は、アクセス許可が空間グラフの下方に継承されるという点で独特です。
RBAC でできることは何ですか?
開発者は次の目的で RBAC を使用することがあります。
- ビル全体のデバイスまたは特定の部屋やフロアだけのデバイスを管理する権限をユーザーに付与します。
- グラフ全体のすべての空間グラフ ノードまたはグラフのセクションのノードだけに対するグローバル アクセス権を、管理者に付与します。
- サポート スペシャ リストに、アクセス キーを除く、グラフへの読み取りアクセス権を付与します。
- ドメインのすべてのメンバーに、すべてのグラフ オブジェクトへの読み取りアクセス権を付与します。
RBAC ベスト プラクティス
ロールベースのアクセス制御は、アクセス、アクセス許可、ロールを管理するための継承によるセキュリティ戦略です。 子孫のロールは、親のロールからアクセス許可を継承します。 アクセス許可は、親ロールから継承しないで割り当てることもできます。 必要に応じて、割り当てたロールをカスタマイズすることもできます。
たとえば、スペース管理者には、指定されたスペースのすべての操作を実行するためにグローバル アクセス権が必要です。 アクセス権には、スペースとその下にあるすべてのノードが含まれます。 デバイス インストーラーには、デバイスとセンサーへの読み取りと更新のアクセス許可のみが必要です。
どのような場合でも、ロールには、最小限の特権の原則に従って、ユーザーがタスクを実行するために厳密に必要であり過剰ではないアクセス権を付与します。 この原則に従って、ID には次のアクセス権のみが付与されます。
- そのジョブを完了するために必要なアクセスの量。
- そのジョブを実行するために適切であり、それだけに限定されたロール。
重要
常に最小限の特権の原則に従ってください。
従う必要のある他の 2 つの重要なロールベースのアクセス制御の方法:
- ロールの割り当てを定期的に監査し、各ロールに適切なアクセス許可があることを確認します。
- 個人のロールまたは割り当てが変わったら、ロールと割り当てをクリーンアップします。
ロール
ロールの定義
ロールの定義は、アクセス許可と、ロールを構成するその他の属性のコレクションです。 ロールの定義では、そのロールを持つすべてのオブジェクトで実行される可能性のある作成、読み取り、更新、削除など、許可される操作がリストされます。 アクセス許可が適用されるオブジェクトの型も指定されます。
次の表では、Azure Digital Twins で使用可能なロールを説明しています。
ロール | 説明 | Identifier |
---|---|---|
スペース管理者 | 指定のスペースとその下にあるすべてのノードに対する CREATE、READ、UPDATE、および DELETE アクセス許可。 グローバル アクセス許可。 | 98e44ad7-28d4-4007-853b-b9968ad132d1 |
ユーザー管理者 | ユーザーとユーザー関連オブジェクトに対する CREATE、READ、UPDATE、および DELETE アクセス許可。 スペースに対する READ 権限。 | dfaac54c-f583-4dd2-b45d-8d4bbc0aa1ac |
デバイス管理者 | デバイスとデバイス関連オブジェクトに対する CREATE、READ、UPDATE、および DELETE アクセス許可。 スペースに対する READ 権限。 | 3cdfde07-bc16-40d9-bed3-66d49a8f52ae |
キー管理者 | アクセス キーの CREATE、READ、UPDATE、DELETE アクセス許可。 スペースに対する READ 権限。 | 5a0b1afc-e118-4068-969f-b50efb8e5da6 |
トークン管理者 | アクセス キーに対する READ および UPDATE アクセス許可。 スペースに対する READ 権限。 | 38a3bb21-5424-43b4-b0bf-78ee228840c3 |
User | スペース、センサー、ユーザー、それに対応する関連オブジェクトに対する READ アクセス許可。 | b1ffdb77-c635-4e7e-ad25-948237d85b30 |
サポート スペシャリスト | アクセス キーを除くすべてのものに対する READ アクセス許可。 | 6e46958b-dc62-4e7c-990c-c3da2e030969 |
デバイス インストーラー | デバイス、センサー、それに対応する関連オブジェクトに対する READ および UPDATE アクセス許可。 スペースに対する READ 権限。 | b16dd9fe-4efe-467b-8c8c-720e2ff8817c |
ゲートウェイ デバイス | センサーに対する CREATE アクセス許可。 対応する関連オブジェクトを含む、デバイスとセンサーの READ アクセス許可。 | d4c69766-e9bd-4e61-bfc1-d8b6e686c7a8 |
注意
前のロールの完全定義を取得するには、システム/ロール API にお問い合わせください。 詳細については、ロール割り当ての作成と管理に関するページを参照してください。
オブジェクト識別子の型
objectIdType
(またはオブジェクト識別子の型) は、ロールに与えられる ID の型を示します。
DeviceId
および UserDefinedFunctionId
型を除き、オブジェクト識別子の型は Azure Active Directory オブジェクトのプロパティに対応します。
次の表に、Azure Digital Twins でサポートされているオブジェクト識別子の型を示します。
型 | 説明 |
---|---|
UserId | ユーザーにロールを割り当てます。 |
deviceId | デバイスにロールを割り当てます。 |
DomainName | ドメイン名にロールを割り当てます。 指定されたドメイン名を持つ各ユーザーには、対応するロールのアクセス権が与えられます。 |
TenantId | テナントにロールを割り当てます。 指定された Azure AD テナント ID に属する各ユーザーには、対応するロールのアクセス権が与えられます。 |
ServicePrincipalId | サービス プリンシパルのオブジェクト ID にロールを割り当てます。 |
UserDefinedFunctionId | ユーザー定義関数 (UDF) にロールを割り当てます。 |
ヒント
サービス プリンシパルにアクセス許可を付与する方法については、ロール割り当ての作成と管理に関するページを参照してください。
次のリファレンス ドキュメント記事では、以下について説明されています。
ロールの割り当て
Azure Digital Twins のロールの割り当てでは、ユーザー、Azure AD テナントなどのオブジェクトにロールや空間が関連付けられます。 その空間に属するすべてのオブジェクトにアクセス許可が付与されます。 空間には、その下にある空間グラフ全体が含まれます。
たとえば、建物を表す空間グラフのルート ノードに関して、あるユーザーにロール DeviceInstaller
のロールの割り当てが与えられるとします。 この場合、このユーザーは、そのノードだけでなく、建物内の他のすべての子空間で、デバイスの読み取りと更新を行うことができます。
受信者にアクセス許可を付与するには、ロールの割り当てを作成します。 アクセス許可を取り消すには、ロールの割り当てを削除します。
重要
ロールの割り当ての詳細については、ロール割り当ての作成と管理に関するページを参照してください。
次の手順
Azure Digital Twins ロールの割り当ての作成と管理の詳細については、ロール割り当ての作成と管理に関するページを参照してください。
詳細については、「Azure リソースの RBAC」を参照してください。