すべてのAzure拒否割り当てを一覧表示する
- [アーティクル]
-
-
ロールの割り当てと同様に、"拒否割り当て" ではアクセスの拒否を目的として、特定のスコープでユーザー、グループ、またはサービス プリンシパルに一連の拒否アクションがアタッチされます。 拒否割り当てを使用すると、ロールの割り当てでアクセスを許可されている場合であっても、指定した Azure リソース アクションをユーザーが実行できなくなります。
この記事では、拒否の割り当てを一覧表示する方法について説明します。
重要
独自の拒否割り当てを直接作成することはできません。 拒否の割り当ては、Azure によって作成および管理されます。
拒否割り当てが作成されるしくみ
拒否割り当ては、リソースを保護するために Azure によって作成および管理されます。 独自の拒否割り当てを直接作成することはできません。 ただし、デプロイ スタックの作成中に拒否設定を指定できます。これにより、そのデプロイ スタックのリソースが所有する拒否の割り当てが作成されます。 デプロイ スタックは、現在プレビュー段階です。 詳細については、「管理対象リソースを削除から保護する」を参照してください。
ロール割り当てと拒否割り当ての比較
拒否割り当てはロール割り当てと同様のパターンに従いますが、いくつかの相違点もあります。
機能 |
ロール割り当て |
拒否割り当て |
アクセス権の付与 |
✅ |
|
アクセス拒否 |
|
✅ |
直接作成できる |
✅ |
|
スコープで適用 |
✅ |
✅ |
プリンシパルを除外 |
|
✅ |
子スコープへの継承を防止 |
|
✅ |
従来のサブスクリプション管理者の割り当てに適用 |
|
✅ |
拒否割り当てのプロパティ
拒否割り当てには、以下のプロパティがあります。
プロパティ |
必須 |
タイプ |
説明 |
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
に設定されていること。
拒否割り当てを一覧表示する
こちらのステップに従って、拒否の割り当てを一覧表示します。
重要
独自の拒否割り当てを直接作成することはできません。 拒否の割り当ては、Azure によって作成および管理されます。 詳細については、「管理対象リソースを削除から保護する」を参照してください。
前提条件
拒否割り当てに関する情報を取得するのに必要なものは次のとおりです:
- ほとんどの Azure 組み込みロールに含まれている
Microsoft.Authorization/denyAssignments/read
アクセス許可。
Azure portal で拒否の割り当てを一覧表示する
サブスクリプションまたは管理グループのスコープで拒否割り当てを一覧表示するには、次の手順に従います。
Azure portal で、選択したスコープ (リソース グループやサブスクリプションなど) を開きます。
[アクセス制御 (IAM)] を選択します。
[拒否の割り当て] タブを選択します (または、[拒否の割り当てを表示します] タイルで [表示] ボタンを選択します)。
このスコープに拒否の割り当てがある場合、またはこのスコープに継承されている場合は、それが表示されます。
追加の列を表示するために [列の編集] を選択します。
列 |
説明 |
名前 |
拒否割り当ての名前です。 |
プリンシパルの種類 |
ユーザー、グループ、システム定義のグループ、またはサービス プリンシパルです。 |
拒否 |
拒否割り当てに含まれているセキュリティ プリンシパルの名前です。 |
Id |
拒否割り当ての一意の識別子です。 |
除外されたプリンシパル |
拒否割り当てから除外されているセキュリティ プリンシパルがあるかどうかです。 |
子に適用しません (子には適用しない) |
拒否割り当てがサブスコープに継承されているかどうかです。 |
保護されているシステム |
Azure が拒否割り当てを管理しているかどうかです。 現時点では、常に [はい] です。 |
スコープ |
管理グループ、サブスクリプション、リソース グループ、またはリソースです。 |
有効になっている任意の項目のチェックマークをオンにし、[OK] を選択して、選択した列を表示します。
拒否割り当ての詳細を一覧表示する
拒否割り当ての詳細をさらに一覧表示するには、次の手順を実行します。
前のセクションの説明に従って、[拒否割り当て] ウィンドウを開きます。
拒否の割り当ての名前をクリックし、[ユーザー] ページを開きます。
[ユーザー] ページには、次の 2 つのセクションがあります。
拒否の設定 |
説明 |
以下に拒否割り当てを適用します |
拒否割り当ての適用対象のセキュリティ プリンシパルです。 |
拒否割り当てによって以下が除外されます |
拒否割り当てから除外対象のセキュリティ プリンシパルです。 |
システム定義のプリンシパルは、Azure AD ディレクトリのすべてのユーザー、グループ、サービス プリンシパルおよびマネージド ID を表します。
拒否されたアクセス許可の一覧を表示するには、[拒否されたアクセス許可] を選択します。
アクションの種類 |
説明 |
アクション |
拒否されたコントロール プレーン アクション。 |
NotActions |
拒否されたコントロール プレーン アクションから除外されたコントロール プレーン アクション。 |
DataActions |
拒否されたデータ プレーン アクション。 |
NotDataActions |
拒否されたデータ プレーン アクションから除外されたデータ プレーン アクション。 |
前のスクリーンショットの例で有効なアクセス許可は、次のとおりです。
- データ プレーン上のストレージ アクションは、コンピューティング アクションを除き、すべて拒否されます。
拒否の割り当てのプロパティを表示するには、[プロパティ] を選択します。
[プロパティ] ページには、拒否の割り当ての名前、ID、説明およびスコープが表示されます。 [Does not apply to children]\(子には適用しない\) スイッチは、拒否割り当てがサブスコープに継承されるかどうかを示します。 [保護されているシステム] スイッチは、Azure によって拒否割り当てが管理されるかどうかを示します。 現在、これはすべてのケースにおいて [はい] です。
前提条件
拒否割り当てに関する情報を取得するのに必要なものは次のとおりです:
すべての拒否割り当てを一覧表示する
現在のサブスクリプションに対するすべての拒否割り当てを一覧表示するには、Get-AzDenyAssignment を使用します。
Get-AzDenyAssignment
PS C:\> Get-AzDenyAssignment
Id : /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storef2dfaqv5dzzfy/providers/Microsoft.Authorization/denyAssignments/6d266d71-a890-53b7-b0d8-2af6769ac019
DenyAssignmentName : Deny assignment '6d266d71-a890-53b7-b0d8-2af6769ac019' created by Deployment Stack '/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack'.
Description : Created by Deployment Stack '/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack'.
Actions : {*/delete}
NotActions : {Microsoft.Authorization/locks/delete, Microsoft.Storage/storageAccounts/delete}
DataActions : {}
NotDataActions : {}
Scope : /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storef2dfaqv5dzzfy
DoNotApplyToChildScopes : True
Principals : {
DisplayName: All Principals
ObjectType: SystemDefined
ObjectId: 00000000-0000-0000-0000-000000000000
}
ExcludePrincipals : {
DisplayName: User1
ObjectType: User
ObjectId: 675986ff-5b6a-448c-9a22-fd2a65100221
}
IsSystemProtected : True
Id : /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetf2dfaqv5dzzfy/providers/Microsoft.Authorization/denyAssignments/36a162b5-ddcc-529a-9deb-673250f90ba7
DenyAssignmentName : Deny assignment '36a162b5-ddcc-529a-9deb-673250f90ba7' created by Deployment Stack '/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack'.
Description : Created by Deployment Stack '/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack'.
Actions : {*/delete}
NotActions : {Microsoft.Authorization/locks/delete, Microsoft.Storage/storageAccounts/delete}
DataActions : {}
NotDataActions : {}
Scope : /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetf2dfaqv5dzzfy
DoNotApplyToChildScopes : True
Principals : {
DisplayName: All Principals
ObjectType: SystemDefined
ObjectId: 00000000-0000-0000-0000-000000000000
}
ExcludePrincipals : {
DisplayName: User1
ObjectType: User
ObjectId: 675986ff-5b6a-448c-9a22-fd2a65100221
}
IsSystemProtected : True
リソース グループ スコープの拒否割り当てを一覧表示する
リソース グループ スコープのすべての拒否割り当てを一覧表示するには、Get-AzDenyAssignment を使用します。
Get-AzDenyAssignment -ResourceGroupName <resource_group_name>
サブスクリプション スコープの拒否割り当てを一覧表示する
サブスクリプション スコープのすべての拒否割り当てを一覧表示するには、Get-AzDenyAssignment を使用します。 サブスクリプション ID を取得するには、Azure portal の [サブスクリプション] ページで、または Get-AzSubscription を使用して、その ID を見つけることができます。
Get-AzDenyAssignment -Scope /subscriptions/<subscription_id>
前提条件
拒否割り当てに関する情報を取得するのに必要なものは次のとおりです:
- ほとんどの Azure 組み込みロールに含まれている
Microsoft.Authorization/denyAssignments/read
アクセス許可。
次のバージョンを使用する必要があります。
2018-07-01-preview
以降
2022-04-01
は最初の安定版です
1 つの拒否割り当てを一覧表示する
単一の拒否の割り当てを一覧表示するには、Deny Assignments - Get REST API を使用します。
次の要求から開始します。
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/denyAssignments/{deny-assignment-id}?api-version=2022-04-01
URI の {scope} を、拒否割り当てを一覧表示するスコープに変更します。
Scope |
Type |
subscriptions/{subscriptionId} |
サブスクリプション |
subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 |
Resource group |
subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 |
リソース |
{deny-assignment-id} を、取得する拒否割り当て識別子に置き換えます。
複数の拒否割り当てを一覧表示する
複数の拒否の割り当てを一覧表示するには、Deny Assignments - List REST API を使用します。
次のいずれかの要求から開始します。
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01
省略可能なパラメーターを使用します。
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01&$filter={filter}
URI の {scope} を、拒否割り当てを一覧表示するスコープに変更します。
Scope |
Type |
subscriptions/{subscriptionId} |
サブスクリプション |
subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 |
Resource group |
subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 |
リソース |
{filter} には、拒否割り当て一覧をフィルター処理するために適用する条件を指定します。
フィルター |
説明 |
(フィルターなし) |
指定されたスコープおよびその上下の拒否割り当てをすべて一覧表示します。 |
$filter=atScope() |
指定されたスコープ以上の拒否割り当てのみを一覧表示します。 サブスコープの拒否割り当ては含まれません。 |
$filter=assignedTo('{objectId}') |
指定したユーザーまたはサービス プリンシパルを対象に拒否割り当てを一覧表示します。 ユーザーが、拒否割り当てがあるグループのメンバーである場合は、その拒否割り当ても一覧表示されます。 このフィルターはグループにとって推移的です。つまり、ユーザーがあるグループのメンバーで、そのグループが、拒否割り当てのある別のグループのメンバーである場合は、その拒否割り当ても一覧表示されます。 このフィルターは、ユーザーまたはサービス プリンシパルのオブジェクト ID のみを受け入れます。 グループのオブジェクト ID を渡すことはできません。 |
$filter=atScope()+and+assignedTo('{objectId}') |
指定したユーザーまたはサービス プリンシパルを対象に、指定したスコープで拒否割り当てを一覧表示します。 |
$filter=denyAssignmentName+eq+'{deny-assignment-name}' |
指定された名前の拒否割り当てを一覧表示します。 |
$filter=principalId+eq+'{objectId}' |
指定したユーザー、グループ、またはサービス プリンシパルを対象に拒否割り当てを一覧表示します。 |
ルート スコープ (/) の拒否割り当てを一覧表示する
「Azure のすべてのサブスクリプションと管理グループを管理する目的でアクセス権限を昇格させる」で説明されているように、アクセス権限を昇格させます。
次の要求を使用します。
GET https://management.azure.com/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01&$filter={filter}
{filter} には、拒否割り当て一覧をフィルター処理するために適用する条件を指定します。 フィルターが必要です。
フィルター |
説明 |
$filter=atScope() |
指定されたルート スコープの拒否割り当てのみを一覧表示します。 サブスコープの拒否割り当ては含まれません。 |
$filter=denyAssignmentName+eq+'{deny-assignment-name}' |
指定された名前の拒否割り当てを一覧表示します。 |
昇格されたアクセス権を削除します。
次のステップ