Azure portal を使用して Azure カスタム ロールを作成または更新する
Azure の組み込みロールが組織の特定のニーズを満たさない場合は、独自のAzure カスタム ロールを作成することができます。 組み込みロールと同様に、カスタム ロールは、ユーザー、グループ、サービス プリンシパルに対して、管理グループ、サブスクリプション、リソース グループのスコープで割り当てることができます。 カスタム ロールは Microsoft Entra ディレクトリに保存され、サブスクリプション間で共有することができます。 各ディレクトリは、最大 5,000 個のカスタム ロールを持つことができます カスタム ロールは、Azure portal、Azure PowerShell、Azure CLI、または REST API を使用して作成できます。 この記事では、Azure portal を使用してカスタム ロールを作成する方法について説明します。
前提条件
カスタム ロールを作成するには、次のものが必要です。
- 所有者やユーザー アクセス管理者など、カスタム ロールを作成するためのアクセス許可
手順 1: 必要なアクセス許可を決定する
Azure には、カスタム ロールに含めることができる何千ものアクセス許可があります。 カスタム ロールに追加するアクセス許可を決定するのに役立ついくつかの方法を示します。
- 既存の組み込みロールを確認します。
- アクセス権を付与する Azure サービスを一覧表示します。
- Azure サービスにマップされるリソース プロバイダーを決定します。 検索方法については、「手順 4: アクセス許可」の後半で説明します。
- 使用可能なアクセス許可を検索して、含めるアクセス許可を見つけます。 検索方法については、「手順 4: アクセス許可」の後半で説明します。
手順 2: 開始方法を選択する
カスタム ロールの作成を開始するには、次の 3 つの方法があります。 既存のロールを複製するか、最初から始めるか、JSON ファイルから始めることができます。 最も簡単な方法は、必要なアクセス許可のほとんどが備わった既存のロールを検索し、それを複製して、実際のシナリオに合わせて変更することです。
ロールを複製する
必要なアクセス許可が既存のロールにない場合は、それを複製してから、アクセス許可を変更することができます。 ロールの複製を開始するには、次の手順に従います。
Azure portal で、カスタム ロールを割り当て可能にする管理グループ、サブスクリプション、またはリソース グループを開き、[アクセス制御 (IAM)] を開きます。
次のスクリーンショットは、サブスクリプションに対して開かれている [アクセス制御 (IAM)] ページを示しています。
[ロール] タブをクリックして、すべての組み込みおよびカスタム ロールの一覧を表示します。
請求閲覧者ロールなど、複製するロールを検索します。
行の末尾にある省略記号 ( ... ) をクリックし、 [複製] をクリックします。
これにより、[ロールを複製する] オプションが選択されたカスタム ロール エディターが開きます。
「手順 3: 基本」に進みます。
最初から行う
必要に応じて、次の手順に従って、カスタム ロールを最初から始めることができます。
Azure portal で、カスタム ロールを割り当て可能にする管理グループ、サブスクリプション、またはリソース グループを開き、[アクセス制御 (IAM)] を開きます。
[追加] をクリックし、[カスタム ロールの追加] をクリックします。
これにより、[Start from scratch]\(最初から始める\) オプションが選択されたカスタム ロール エディターが開きます。
「手順 3: 基本」に進みます。
JSON から始める
必要に応じて、JSON ファイルでほとんどのカスタム ロール値を指定できます。 カスタム ロール エディターでファイルを開き、追加の変更を行ってから、カスタム ロールを作成できます。 JSON ファイルで始めるには、次の手順に従います。
次の形式の JSON ファイルを作成します。
{ "properties": { "roleName": "", "description": "", "assignableScopes": [], "permissions": [ { "actions": [], "notActions": [], "dataActions": [], "notDataActions": [] } ] } }
JSON ファイルで、さまざまなプロパティの値を指定します。 いくつかの値が追加された例を次に示します。 各種のプロパティについては、「Azure ロールの定義について」をご覧ください。
{ "properties": { "roleName": "Billing Reader Plus", "description": "Read billing data and download invoices", "assignableScopes": [ "/subscriptions/11111111-1111-1111-1111-111111111111" ], "permissions": [ { "actions": [ "Microsoft.Authorization/*/read", "Microsoft.Billing/*/read", "Microsoft.Commerce/*/read", "Microsoft.Consumption/*/read", "Microsoft.Management/managementGroups/read", "Microsoft.CostManagement/*/read", "Microsoft.Support/*" ], "notActions": [], "dataActions": [], "notDataActions": [] } ] } }
Azure portal で、[アクセス制御 (IAM)] ページを開きます。
[追加] をクリックし、[カスタム ロールの追加] をクリックします。
これにより、カスタム ロール エディターが開きます。
[基本] タブの [ベースラインのアクセス許可] で、[Start from JSON]\(JSON から始める\) を選択します。
[ファイルの選択] ボックスの横にあるフォルダー ボタンをクリックして、[開く] ダイアログ ボックスを開きます。
使用する JSON ファイルを選択し、[開く] をクリックします。
「手順 3: 基本」に進みます。
手順 3: 基本
[基本] タブで、カスタム ロールの名前、説明、およびベースライン アクセス許可を指定します。
[カスタム ロール名] ボックスで、カスタム ロールの名前を指定します。 名前は、Microsoft Entra ディレクトリ内で一意である必要があります。 名前には、英字、数字、スペース、特殊文字を含めることができます。
[説明] ボックスに、カスタム ロールの説明を指定します (省略可能)。 これは、カスタム ロールのヒントになります。
[ベースラインのアクセス許可] オプションは、前の手順に基づいて既に設定されている必要がありますが、変更することができます。
手順 4: アクセス許可
[アクセス許可] タブで、カスタム ロールのアクセス許可を指定します。 ロールを複製したのか、JSON を使用して始めたのかによって、[アクセス許可] タブにいくつかのアクセス許可が既に表示されている場合があります。
アクセス許可を追加または削除する
カスタム ロールのアクセス許可を追加または削除するには、次の手順に従います。
アクセス許可を追加するには [アクセス許可の追加] をクリックして、[アクセス許可の追加] ペインを開きます。
このペインには、使用可能なすべてのアクセス許可がカード形式のさまざまなカテゴリにグループ化されて表示されます。 各カテゴリは、Azure リソースを提供するサービスである "リソース プロバイダー" を表します。
[Search for a permission]\(アクセス許可の検索\) ボックスに、アクセス許可を検索する文字列を入力します。 たとえば、請求書に関連するアクセス許可を検索するには、「請求書」を検索します。
検索文字列に基づいて、リソース プロバイダー カードの一覧が表示されます。 リソース プロバイダーが Azure サービスにどのようにマップされるかを示す一覧については、「Azure サービスのリソース プロバイダー 」を参照してください。
[Microsoft Billing] など、カスタム ロールに追加するアクセス許可を持つ可能性のあるリソース プロバイダー カードをクリックします。
検索文字列に基づいて、そのリソース プロバイダーの管理アクセス許可の一覧が表示されます。
データ プレーンに適用されるアクセス許可を検索する場合は、[データ アクション] をクリックします。 それ以外の場合は、アクションの切り替えを [アクション] のままにして、コントロール プレーンに適用されるアクセス許可を一覧表示します。 コントロール プレーンとデータ プレーンの違いについては、「コントロールおよびデータ アクション」を参照してください。
必要に応じて、検索文字列を更新して検索を絞り込みます。
カスタム ロールに追加する 1 つ以上のアクセス許可が見つかったら、そのアクセス許可の横にチェック マークを追加します。 たとえば、[その他: 請求書のダウンロード] の横にチェック マークを追加して、請求書をダウンロードするアクセス許可を追加します。
[追加] をクリックして、アクセス許可の一覧にアクセス許可を追加します。
アクセス許可は、
Actions
またはDataActions
として追加されます。アクセス許可を削除するには、行の末尾にある削除アイコンをクリックします。 この例では、ユーザーはサポート チケットを作成する権限を必要としないため、
Microsoft.Support/*
のアクセス許可を削除できます。
ワイルドカード アクセス許可を追加する
選択した開始方法によっては、アクセス許可の一覧にワイルドカード (*
) を含むアクセス許可が表示される場合があります。 ワイルドカード (*
) を使用すると、指定されたアクション文字列に一致するものすべてにアクセス許可が拡張されます。 たとえば、次のワイルドカード文字列は、Azure Cost Management およびエクスポートに関連するすべてのアクセス許可を追加します。 これには、今後追加される可能性があるエクスポートのアクセス許可も含まれます。
Microsoft.CostManagement/exports/*
新しいワイルドカード アクセス許可を追加する場合、[アクセス許可の追加] ペインを使用して追加することはできません。 ワイルドカード アクセス許可を追加するには、[JSON] タブを使用して手動で追加する必要があります。詳細については、「手順 6: JSON」を参照してください。
Note
ワイルドカード (*
) 文字を使用する代わりに、Actions
と DataActions
を明示的に指定することをお勧めします。 今後の Actions
または DataActions
を通じて付与される追加のアクセスとアクセス許可は、ワイルドカードを使用した望ましくない動作である可能性があります。
アクセス許可を除外する
ロールにワイルドカード (*
) アクセス許可があり、そのワイルドカード アクセス許可から特定のアクセス許可を除外または削減する場合は、それらを除外できます。 たとえば、次のようなワイルドカード アクセス許可があるとします。
Microsoft.CostManagement/exports/*
エクスポートの削除を許可しない場合は、次の削除アクセス許可を除外できます。
Microsoft.CostManagement/exports/delete
アクセス許可を除外すると、それは NotActions
または NotDataActions
として追加されます。 有効な管理アクセス許可は、すべての Actions
を加算してからすべての NotActions
を減算することによって計算されます。 有効なデータ アクセス許可は、すべての DataActions
を加算してからすべての NotDataActions
を減算することによって計算されます。
Note
アクセス許可の除外は、拒否と同じではありません。 アクセス許可の除外は、ワイルドカード アクセス許可からアクセス許可を削減するための手軽な方法にすぎません。
許可されたワイルドカード アクセス許可からアクセス許可を除外または削減するには、[アクセス許可を除外する] をクリックして、[アクセス許可を除外する] ペインを開きます。
このペインでは、除外または削減する管理またはデータ アクセス許可を指定します。
除外する 1 つ以上のアクセス許可が見つかったら、そのアクセス許可の横にチェック マークを追加し、[追加] ボタンをクリックします。
アクセス許可は、
NotActions
またはNotDataActions
として追加されます。
手順 5: 割り当て可能なスコープ
[割り当て可能なスコープ] タブで、管理グループ、サブスクリプション、リソース グループなど、カスタム ロールを割り当てることができる場所を指定します。 選択した開始方法によっては、[アクセス制御 (IAM)] ページを開いたスコープがこのタブに既に表示されている場合があります。
割り当て可能なスコープに定義できる管理グループは 1 つだけです。 割り当て可能なスコープをルート スコープ ("/") に設定することはサポートされていません。
[割り当て可能なスコープの追加] をクリック て、[割り当て可能なスコープの追加] ペインを開きます。
使用する 1 つまたは複数のスコープ (通常はサブスクリプション) をクリックします。
[追加] ボタンをクリックして、割り当て可能なスコープを追加します。
手順 6: JSON
[JSON] タブには、JSON 形式のカスタム ロールが表示されます。 必要に応じて、JSON を直接編集できます。
JSON を編集するには、[編集] をクリックします。
JSON に変更を加えます。
JSON の形式が正しくない場合は、赤色のギザギザ線が表示され、縦の溝にインジケーターが表示されます。
編集が完了したら、[保存] をクリックします。
手順 7: 確認と作成
[確認と作成] タブで、カスタム ロールの設定を確認できます。
カスタム ロールの設定を確認します。
[作成] をクリックして、カスタム ロールを作成します。
しばらくすると、カスタム ロールが正常に作成されたことを示すメッセージ ボックスが表示されます。
エラーが検出されると、メッセージが表示されます。
[ロール] の一覧で、新しいカスタム ロールを表示します。 カスタム ロールが表示されない場合は、[最新の情報に更新] をクリックします。
カスタム ロールがすべての場所に表示されるまで、数分かかることがあります。
カスタム ロールの一覧表示
カスタム ロールを表示するには、次の手順に従います。
管理グループ、サブスクリプション、またはリソース グループを開き、[アクセス制御 (IAM)] を開きます。
[ロール] タブをクリックして、すべての組み込みおよびカスタム ロールの一覧を表示します。
[種類] 一覧で [CustomRole] を選択し、カスタム ロールのみを表示します。
カスタム ロールを作成したばかりで、一覧に表示されない場合は、[最新の情報に更新] をクリックします。
カスタム ロールの更新
この記事で前述したように、カスタム ロールの一覧を開きます。
更新するカスタム ロールの省略記号 (...) をクリックし、[編集] をクリックします。 組み込みのロールは更新できないことに注意してください。
カスタム ロールがエディターで開かれます。
さまざまなタブを使用して、カスタム ロールを更新します。
変更が完了したら、[確認と作成] タブをクリックして、変更内容を確認します。
[更新] ボタンをクリックして、カスタム ロールを更新します。
カスタム ロールの削除
カスタム ロールを使用しているロールの割り当てをすべて削除します。 詳細については、「カスタム ロールを削除するロールの割り当てを検索する」を参照してください。
この記事で前述したように、カスタム ロールの一覧を開きます。
削除するカスタム ロールの省略記号 (...) をクリックし、[削除] をクリックします。
カスタム ロールが完全に削除されるまで、数分かかることがあります。