Azure 拒否割り当てについて
ロールの割り当てと同様に、"拒否割り当て" ではアクセスの拒否を目的として、特定のスコープでユーザー、グループ、またはサービス プリンシパルに一連の拒否アクションがアタッチされます。 拒否割り当てを使用すると、ロールの割り当てでアクセスを許可されている場合であっても、指定した Azure リソース アクションをユーザーが実行できなくなります。
この記事では、拒否割り当てがどのように定義されるかについて説明します。
拒否割り当てが作成されるしくみ
拒否割り当ては、リソースを保護するために Azure によって作成および管理されます。 Azure Blueprints および Azure マネージド アプリでは、システム管理対象リソースを保護するために拒否割り当てを使用します。 Azure Blueprints と Azure マネージド アプリは、拒否割り当てを Azure 内で使う唯一の方法です。 独自の拒否割り当てを直接作成することはできません。 Azure Blueprints では、リソースをロックするために拒否割り当てが使用されますが、ブループリントの一部としてデプロイされたリソースに対してのみ使用されます。 詳細については、「Azure Blueprints でのリソース ロックについて」を参照してください。
Note
独自の拒否割り当てを直接作成することはできません。
ロール割り当てと拒否割り当ての比較
拒否割り当てはロール割り当てと同様のパターンに従いますが、いくつかの相違点もあります。
機能 | ロール割り当て | 拒否割り当て |
---|---|---|
アクセス権の付与 | ✔️ | |
アクセス拒否 | ✔️ | |
直接作成できる | ✔️ | |
スコープで適用 | ✔️ | ✔️ |
プリンシパルを除外 | ✔️ | |
子スコープへの継承を防止 | ✔️ | |
従来のサブスクリプション管理者の割り当てに適用 | ✔️ |
拒否割り当てのプロパティ
拒否割り当てには、以下のプロパティがあります。
プロパティ | 必須 | タイプ | 説明 |
---|---|---|---|
DenyAssignmentName |
イエス | String | 拒否割り当ての表示名。 名前は、指定のスコープで一意である必要があります。 |
Description |
いいえ | String | 拒否割り当ての説明。 |
Permissions.Actions |
少なくとも 1 つの Actions または DataActions | String[] | 拒否割り当てによってアクセスがブロックされるコントロール プレーン アクションを指定する文字列の配列。 |
Permissions.NotActions |
いいえ | String[] | 拒否割り当てから除外されるコントロール プレーン アクションを指定する文字列の配列。 |
Permissions.DataActions |
少なくとも 1 つの Actions または DataActions | String[] | 拒否割り当てによってアクセスがブロックされるデータ プレーン アクションを指定する文字列の配列。 |
Permissions.NotDataActions |
いいえ | String[] | 拒否割り当てから除外されるデータ プレーン アクションを指定する文字列の配列。 |
Scope |
いいえ | String | 拒否割り当てが適用されるスコープを指定する文字列。 |
DoNotApplyToChildScopes |
いいえ | ブール型 | 拒否割り当てが子スコープに適用されるかどうかを指定します。 既定値は false です。 |
Principals[i].Id |
はい | String[] | 拒否割り当てが適用される Microsoft Entra プリンシパル オブジェクト ID (ユーザー、グループ、サービス プリンシパル、またはマネージド ID) の配列。 すべてのプリンシパルを表すために空の GUID 00000000-0000-0000-0000-000000000000 に設定されます。 |
Principals[i].Type |
いいえ | String[] | Principals[i].Id によって表されるオブジェクトの種類の配列。すべてのプリンシパルを表すために SystemDefined に設定されます。 |
ExcludePrincipals[i].Id |
いいえ | String[] | 拒否割り当てが適用されない Microsoft Entra プリンシパル オブジェクト ID (ユーザー、グループ、サービス プリンシパル、またはマネージド ID) の配列。 |
ExcludePrincipals[i].Type |
いいえ | String[] | ExcludePrincipals[i].Id によって表されるオブジェクトの種類の配列。 |
IsSystemProtected |
いいえ | ブール型 | この拒否割り当てが Azure によって作成されたものかどうか、およびこの拒否割り当てを編集または削除できるかどうかを指定します。 現在、すべての拒否割り当てはシステムによって保護されています。 |
All Principals プリンシパル
拒否割り当てをサポートするために、All Principals (すべてのプリンシパル) という名前のシステム定義プリンシパルが導入されました。 このプリンシパルは、Microsoft Entra ディレクトリのすべてのユーザー、グループ、サービス プリンシパルおよびマネージド ID を表します。 プリンシパル ID がゼロ GUID 00000000-0000-0000-0000-000000000000
で、プリンシパルの種類が SystemDefined
の場合、プリンシパルはすべてのプリンシパルを表します。 Azure PowerShell の出力では、All Principals は次のようになります。
Principals : {
DisplayName: All Principals
ObjectType: SystemDefined
ObjectId: 00000000-0000-0000-0000-000000000000
}
All Principals は ExcludePrincipals
と組み合わせて、一部のユーザー以外のすべてのプリンシパルを拒否することができます。 All Principals には次の制約があります。
Principals
でのみ使用することができ、ExcludePrincipals
では使用できません。Principals[i].Type
がSystemDefined
に設定されていること。