Translated ['src/pentesting-cloud/azure-security/az-basic-information/RE

This commit is contained in:
Translator
2025-02-08 18:51:45 +00:00
parent bc2c9e9e7e
commit d158b1bce2

View File

@@ -24,11 +24,11 @@
- これは、リソースVM、DBなどを実行し、請求される**論理コンテナ**です。
- その**親**は常に**管理グループ**であり(ルート管理グループであることも可能)、サブスクリプションは他のサブスクリプションを含むことはできません。
- **1つのEntra ID**ディレクトリのみを**信頼**します。
- サブスクリプションレベル(またはその親のいずれか)で適用され**権限**は、サブスクリプション内のすべてのリソースに**継承**されます。
- サブスクリプションレベル(またはその親のいずれか)で適用され**権限**は、サブスクリプション内のすべてのリソースに**継承**されます。
### リソースグループ
[ドキュメントから:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) リソースグループは、Azureソリューションのための**関連リソース**を保持する**コンテナ**です。リソースグループには、ソリューションのすべてのリソースを含めることも、管理したい**リソースのみ**を含めることもできます。一般的に、**同じライフサイクル**を共有するリソースを同じリソースグループに追加することで、グループとして簡単に展開、更新、削除できます。
[ドキュメントから:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) リソースグループは、Azureソリューションのための**関連リソース**を保持する**コンテナ**です。リソースグループには、ソリューションのすべてのリソースを含めることも、管理したい**リソースのみ**を含めることもできます。一般的に、**同じライフサイクル**を共有する**リソース**を同じリソースグループに追加することで、グループとして簡単に展開、更新、削除できます。
すべての**リソース**は**リソースグループ内**に存在し、グループにのみ属することができ、リソースグループが削除されると、その中のすべてのリソースも削除されます。
@@ -38,11 +38,11 @@
Azureのすべてのリソースには、それを識別するAzureリソースIDがあります。
AzureリソースIDの形式は次のとおりです
AzureリソースIDの形式は次のとおりです
- `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}`
サブスクリプションID `12345678-1234-1234-1234-123456789012` のリソースグループ `myResourceGroup` にある仮想マシン `myVM` のAzureリソースIDは次のようになります
サブスクリプションID `12345678-1234-1234-1234-123456789012` のリソースグループ `myResourceGroup` にある仮想マシン `myVM` のAzureリソースIDは次のようになります
- `/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM`
@@ -58,28 +58,28 @@ Entra IDは、認証、承認、ユーザーアクセス制御を処理するた
### Entraドメインサービス旧Azure AD DS
Entraドメインサービスは、従来のWindows Active Directory環境と互換性のある**管理されたドメインサービス**を提供することでEntra IDの機能を拡張します。LDAP、Kerberos、NTLMなどのレガシープロトコルをサポートし、組織がオンプレミスのドメインコントローラーを展開せずに、古いアプリケーションをクラウドで移行または実行できるようにします。このサービスは、集中管理のためのグループポリシーもサポートしており、レガシーまたはADベースのワークロードが最新のクラウド環境と共存する必要があるシナリオに適しています。
Entraドメインサービスは、従来のWindows Active Directory環境と互換性のある**管理されたドメインサービス**を提供することでEntra IDの機能を拡張します。LDAP、Kerberos、NTLMなどのレガシープロトコルをサポートし、組織がオンプレミスのドメインコントローラーを展開することなく、クラウドで古いアプリケーションを移行または実行できるようにします。このサービスは、集中管理のためのグループポリシーもサポートしており、レガシーまたはADベースのワークロードが最新のクラウド環境と共存する必要があるシナリオに適しています。
## Entra IDプリンシパル
### ユーザー
- **新しいユーザー**
- 選択したテナントからのメール名とドメインを示す
- 表示名を示す
- パスワードを示す
- プロパティ(名、職名、連絡先情報など)を示す
- 選択したテナントからのメール名とドメインを指定
- 表示名を指定
- パスワードを指定
- プロパティ(名、職名、連絡先情報など)を指定
- デフォルトのユーザータイプは「**メンバー**」
- **外部ユーザー**
- 招待するメールと表示名を示すMicrosoft以外のメールも可
- プロパティを示す
- 招待するメールと表示名を指定Microsoft以外のメールも可
- プロパティを指定
- デフォルトのユーザータイプは「**ゲスト**」
### メンバーとゲストのデフォルト権限
[https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions](https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions) で確認できますが、メンバーは以下のアクションを実行できます
[https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions](https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions) で確認できますが、メンバーは以下のアクションを実行できます
- すべてのユーザー、グループ、アプリケーション、デバイス、役割、サブスクリプション、およびその公開プロパティを読み取る
- すべてのユーザー、グループ、アプリケーション、デバイス、ロール、サブスクリプション、およびその公開プロパティを読み取る
- ゲストを招待する_オフにすることが可能_
- セキュリティグループを作成する
- 非表示のグループメンバーシップを読み取る
@@ -93,49 +93,49 @@ Entraドメインサービスは、従来のWindows Active Directory環境と互
### ユーザーのデフォルト設定可能権限
- **メンバー(**[**ドキュメント**](https://learn.microsoft.com/en-gb/entra/fundamentals/users-default-permissions#restrict-member-users-default-permissions)****
- アプリケーションの登録デフォルトは**はい**
- 非管理者ユーザーによるテナントの作成を制限デフォルトは**いいえ**
- セキュリティグループの作成デフォルトは**はい**
- Microsoft Entra管理ポータルへのアクセスを制限デフォルトは**いいえ**
- アプリケーションの登録: デフォルトは**はい**
- 非管理者ユーザーによるテナントの作成を制限: デフォルトは**いいえ**
- セキュリティグループの作成: デフォルトは**はい**
- Microsoft Entra管理ポータルへのアクセスを制限: デフォルトは**いいえ**
- これはポータルへのAPIアクセスを制限しませんウェブのみ
- ユーザーがLinkedInと仕事または学校のアカウントを接続できるようにするデフォルトは**はい**
- ユーザーをサインインしたままにするデフォルトは**はい**
- ユーザーが所有するデバイスのBitLockerキーを回復することを制限デフォルトは**いいえ**(デバイス設定で確認)
- 他のユーザーを読み取るデフォルトは**はい**Microsoft Graph経由
- ユーザーがLinkedInと仕事または学校のアカウントを接続できるようにする: デフォルトは**はい**
- ユーザーをサインインしたままにする: デフォルトは**はい**
- ユーザーが所有するデバイスのBitLockerキーを回復することを制限: デフォルトは**いいえ**(デバイス設定で確認)
- 他のユーザーを読み取る: デフォルトは**はい**Microsoft Graph経由
- **ゲスト**
- **ゲストユーザーアクセス制限**オプション
- **ゲストユーザーアクセス制限**オプション:
- **ゲストユーザーはメンバーと同じアクセス権を持ちます**。
- **ゲストユーザーはディレクトリオブジェクトのプロパティとメンバーシップへのアクセスが制限されています(デフォルト)**。これにより、デフォルトでゲストは自分のユーザープロファイルのみへのアクセスが許可されます。他のユーザーやグループ情報へのアクセス許可されません
- **ゲストユーザーアクセスは自分のディレクトリオブジェクトのプロパティとメンバーシップに制限されています**が最も制限的です。
- **ゲストを招待する**オプション
- **ゲストユーザーはディレクトリオブジェクトのプロパティとメンバーシップへのアクセスが制限されています(デフォルト)**。これにより、デフォルトで他のユーザーやグループ情報へのアクセス許可されなくなります
- **ゲストユーザーアクセスは自分のディレクトリオブジェクトのプロパティとメンバーシップに制限されています**が最も制限的です。
- **ゲストを招待する**オプション:
- **組織内の誰でもゲストユーザーを招待できます(最も包括的) - デフォルト**
- **メンバーユーザーおよび特定の管理役割に割り当てられたユーザーは、メンバー権限を持つゲストを含むゲストユーザーを招待できます**
- **特定の管理役割に割り当てられたユーザーのみがゲストユーザーを招待できます**
- **メンバーユーザーおよび特定の管理ロールに割り当てられたユーザーは、メンバー権限を持つゲストを含むゲストユーザーを招待できます**
- **特定の管理ロールに割り当てられたユーザーのみがゲストユーザーを招待できます**
- **組織内の誰もゲストユーザーを招待できません(最も制限的)**
- **外部ユーザーの退会**デフォルトは**真**
- 外部ユーザーが組織を退会できるようにする
- **外部ユーザーの退会**: デフォルトは**真**
- 外部ユーザーが組織を離れることを許可
> [!TIP]
> デフォルトで制限されていても、権限が付与されたユーザー(メンバーおよびゲスト)は前述のアクションを実行できます。
### **グループ**
**2種類のグループ**があります
**2種類のグループ**があります
- **セキュリティ**このタイプのグループは、メンバーにアプリケーション、リソースへのアクセスを提供し、ライセンスを割り当てるために使用されます。ユーザー、デバイス、サービスプリンシパル、他のグループがメンバーになれます。
- **Microsoft 365**このタイプのグループは、コラボレーションのために使用され、メンバーに共有メールボックス、カレンダー、ファイル、SharePointサイトなどへのアクセスを提供します。グループメンバーはユーザーのみです。
- **セキュリティ**: このタイプのグループは、メンバーにアプリケーション、リソースへのアクセスを提供し、ライセンスを割り当てるために使用されます。ユーザー、デバイス、サービスプリンシパル、他のグループがメンバーになれます。
- **Microsoft 365**: このタイプのグループは、コラボレーションのために使用され、メンバーに共有メールボックス、カレンダー、ファイル、SharePointサイトなどへのアクセスを提供します。グループメンバーはユーザーのみです。
- これは、EntraIDテナントのドメインを持つ**メールアドレス**を持ちます。
**2種類のメンバーシップ**があります
**2種類のメンバーシップ**があります
- **割り当てられた**特定のメンバーを手動でグループに追加することを許可します。
- **動的メンバーシップ**ルールを使用してメンバーシップを自動的に管理し、メンバーの属性が変更されるとグループの含有を更新します。
- **割り当てられた**: 特定のメンバーを手動でグループに追加することを許可します。
- **動的メンバーシップ**: ルールを使用してメンバーシップを自動的に管理し、メンバーの属性が変更されるとグループの含有を更新します。
### **サービスプリンシパル**
**サービスプリンシパル**は、**アプリケーション**、ホスティングサービス、および自動化ツールがAzureリソースにアクセスするために**使用**され**アイデンティティ**です。このアクセスは、サービスプリンシパルに割り当てられた役割によって**制限され**、**どのリソースにアクセスできるか**とそのレベルを制御します。セキュリティ上の理由から、**ユーザーアイデンティティでログインするのではなく、自動化ツールとともにサービスプリンシパルを使用すること常に推奨されます**。
**サービスプリンシパル**は、**アプリケーション**、ホスティングサービス、および自動化ツールがAzureリソースにアクセスするために作成され**アイデンティティ**です。このアクセスは、サービスプリンシパルに割り当てられたロールによって**制限され**、**どのリソースにアクセスできるか**を制御します。セキュリティ上の理由から、**ユーザーアイデンティティでログインするのではなく、自動化ツールとともにサービスプリンシパルを使用すること常に推奨ます**。
サービスプリンシパルとして直接ログインすることも可能で、**シークレット**(パスワード)、**証明書**を生成するか、第三者プラットフォーム(例Github Actionsへの**フェデレーテッド**アクセスを付与することができます。
サービスプリンシパルとして**直接ログインする**ことも可能で、**シークレット**(パスワード)、**証明書**、または第三者プラットフォーム(例: Github Actionsへの**フェデレーテッド**アクセスを付与することができます。
- **パスワード**認証を選択した場合(デフォルト)、**生成されたパスワードを保存**してください。再度アクセスすることはできません。
- 証明書認証を選択した場合、**アプリケーションがプライベートキーにアクセスできることを確認**してください。
@@ -144,15 +144,16 @@ Entraドメインサービスは、従来のWindows Active Directory環境と互
**アプリ登録**は、アプリケーションがEntra IDと統合し、アクションを実行できるようにするための構成です。
#### 主要コンポーネント
#### 主要コンポーネント:
1. **アプリケーションIDクライアントID**Azure AD内のアプリの一意の識別子。
2. **リダイレクトURI**Azure ADが認証応答を送信するURL。
3. **証明書、シークレット、フェデレーテッド資格情報**アプリケーションのサービスプリンシパルとしてログインするためにシークレットまたは証明書を生成するか、フェデレーテッドアクセスを付与することができます(例Github Actions
4. **API権限**アプリがアクセスできるリソースまたはAPIを指定します。
5. **認証設定**アプリがサポートする認証フローを定義しますOAuth2、OpenID Connect
6. **サービスプリンシパル**アプリが作成されると(ウェブコンソールから行った場合)、サービスプリンシパルが作成されます
7. **サービスプリンシパル**は、構成されたすべての要求された権限を取得します
1. **アプリケーションIDクライアントID**: Azure AD内のアプリの一意の識別子。
2. **リダイレクトURI**: Azure ADが認証応答を送信するURL。
3. **証明書、シークレット、フェデレーテッド資格情報**: アプリケーションのサービスプリンシパルとしてログインするためにシークレットまたは証明書を生成することができ、またはそれにフェデレーテッドアクセスを付与することができます(例: Github Actions
1. **証明書**または**シークレット**が生成された場合、**アプリケーションID**、**シークレット**または**証明書**、および**テナント**ドメインまたはIDを知っていることで、CLIツールを使用して**サービスプリンシパルとしてログイン**できます。
4. **API権限**: アプリがアクセスできるリソースまたはAPIを指定します
5. **認証設定**: アプリのサポートされている認証フローを定義します(例: OAuth2、OpenID Connect
6. **サービスプリンシパル**: アプリが作成されるとサービスプリンシパルが作成されます(ウェブコンソールから行われた場合)または新しいテナントにインストールされたとき
1. **サービスプリンシパル**は、要求されたすべての権限を取得します。
### デフォルト同意権限
@@ -160,108 +161,110 @@ Entraドメインサービスは、従来のWindows Active Directory環境と互
- **ユーザー同意を許可しない**
- すべてのアプリに対して管理者が必要です。
- **確認されたパブリッシャーからのアプリに対するユーザー同意を許可する、選択された権限について(推奨)**
- すべてのユーザーは、「低影響」と分類された権限について、確認されたパブリッシャーからのアプリまたはこの組織に登録されたアプリに同意できます。
- **デフォルト**の低影響権限(ただし、低影響として追加するには同意が必要)
- **確認された発行者からのアプリに対するユーザー同意を許可、選択された権限(推奨)**
- すべてのユーザーは、「低影響」と分類された権限に同意でき、確認された発行者からのアプリまたはこの組織に登録されたアプリに対して同意できます。
- **デフォルト**の低影響権限(ただし、低影響として追加するには同意が必要):
- User.Read - サインインしてユーザープロファイルを読み取る
- offline_access - ユーザーがアクセスを許可したデータへのアクセスを維持する
- offline_access - ユーザーがアクセスを許可したデータへのアクセスを維持
- openid - ユーザーをサインインさせる
- profile - ユーザーの基本プロファイルを表示する
- email - ユーザーのメールアドレスを表示する
- profile - ユーザーの基本プロファイルを表示
- email - ユーザーのメールアドレスを表示
- **アプリに対するユーザー同意を許可する(デフォルト)**
- すべてのユーザーは、組織のデータにアクセスするために任意のアプリに同意できます。
**管理者同意要求**デフォルトは**いいえ**
**管理者同意リクエスト**: デフォルトは**いいえ**
- ユーザーは、同意できないアプリに対して管理者同意を要求できます。
- **はい**の場合:同意要求を行うことができるユーザー、グループ、役割を指定できます。
- ユーザーは、同意できないアプリに対して管理者同意をリクエストできます。
- **はい**の場合: 同意リクエストを行うことができるユーザー、グループ、ロールを指定できます。
- ユーザーがメール通知や期限切れリマインダーを受け取るかどうかも設定できます。
### **管理されたアイデンティティ(メタデータ)**
### **マネージドアイデンティティ(メタデータ)**
Azure Active Directoryの管理されたアイデンティティは、アプリケーションの**アイデンティティを自動的に管理する**ためのソリューションを提供します。これらのアイデンティティは、Azure Active Directory**Azure AD**)認証と互換性のある**リソース**に接続するためにアプリケーションによって使用されます。これにより、アプリケーションは**メタデータ**サービスに連絡して、Azureで指定された管理されたアイデンティティとして**アクションを実行する**ための有効なトークンを取得できるため、クラウド資格情報をコードにハードコーディングする必要がなくなります。
Azure Active Directoryのマネージドアイデンティティは、アプリケーションの**アイデンティティを自動的に管理する**ためのソリューションを提供します。これらのアイデンティティは、Azure Active Directory**Azure AD**)認証と互換性のある**リソース**に接続するためにアプリケーションによって使用されます。これにより、アプリケーションは**メタデータ**サービスに連絡して、Azureで指定されたマネージドアイデンティティとして**アクションを実行する**ための有効なトークンを取得できるため、クラウド資格情報をコードにハードコーディングする必要がなくなります。
管理されたアイデンティティには2種類あります
マネージドアイデンティティには2種類あります
- **システム割り当て**。一部のAzureサービスでは、**サービスインスタンスに直接管理されたアイデンティティを有効にする**ことができます。システム割り当ての管理されたアイデンティティを有効にすると、リソースが存在するサブスクリプションによって信頼されるEntra IDテナントに**サービスプリンシパル**が作成されます。**リソース**が**削除されると**、Azureは自動的に**アイデンティティ**を削除します。
- **ユーザー割り当て**。ユーザーが管理されたアイデンティティを生成することも可能です。これらは、サブスクリプション内のリソースグループ内に作成され、サブスクリプションによって信頼されるEntraIDにサービスプリンシパルが作成されます。その後、管理されたアイデンティティをAzureサービスの1つまたは**複数のインスタンス**に割り当てることができます(複数のリソース)。ユーザー割り当ての管理されたアイデンティティの場合、**アイデンティティはそれを使用するリソースとは別に管理されます**。
- **システム割り当て**。一部のAzureサービスでは、**サービスインスタンスに直接マネージドアイデンティティを有効にする**ことができます。システム割り当てマネージドアイデンティティを有効にすると、リソースが存在するサブスクリプションによって信頼されるEntra IDテナントに**サービスプリンシパル**が作成されます。**リソース**が**削除されると**、Azureは自動的に**アイデンティティ**を削除します。
- **ユーザー割り当て**。ユーザーがマネージドアイデンティティを生成することも可能です。これらは、サブスクリプション内のリソースグループ内に作成され、サブスクリプションによって信頼されるEntraIDにサービスプリンシパルが作成されます。その後、マネージドアイデンティティを1つまたは**複数のAzureサービスのインスタンス**に割り当てることができます(複数のリソース)。ユーザー割り当てマネージドアイデンティティの場合、**アイデンティティはそれを使用するリソースとは別に管理されます**。
管理されたアイデンティティは、サービスプリンシパルに付随する**永続的な資格情報**(パスワードや証明書など)を生成しません。
マネージドアイデンティティは、サービスプリンシパルに付随する**永続的な資格情報**(パスワードや証明書など)を生成しません。
### エンタープライズアプリケーション
これは、サービスプリンシパルをフィルタリングし、割り当てられたアプリケーションを確認するための**Azure内のテーブル**です。
**別の「アプリケーション」タイプではありません**。Azure内に「エンタープライズアプリケーション」というオブジェクトは存在せず、サービスプリンシパル、アプリ登録、管理されたアイデンティティを確認するための抽象化に過ぎません。
**「エンタープライズアプリケーション」という別のタイプの「アプリケーション」ではありません。** Azure内に「エンタープライズアプリケーション」というオブジェクトは存在せず、サービスプリンシパル、アプリ登録、マネージドアイデンティティを確認するための抽象化に過ぎません。
### 管理ユニット
### 管理単位
管理ユニットは、**組織の特定の部分に対して役割から権限を付与する**ことを可能にします。
管理単位は、**組織の特定の部分に対してロールから権限を付与する**ことを可能にします。
:
- シナリオ:ある会社が地域のIT管理者に自分の地域のユーザーのみを管理させたい。
- 実装
- 各地域のために管理ユニットを作成します(例:「北米AU」、「ヨーロッパAU)。
- シナリオ: 会社が地域のIT管理者に自分の地域のユーザーのみを管理させたい。
- 実装:
- 各地域のために管理単位を作成します(例: "北米AU"、"ヨーロッパAU")。
- 各地域のユーザーでAUを構成します。
- AUは**ユーザー、グループ、またはデバイスを含むことができます**
- AUは**動的メンバーシップをサポートします**
- AUは**AUを含むことができません**
- 管理役割を割り当てます
- 地域のITスタッフに「ユーザー管理者」役割を付与し、その地域のAUにスコープを設定します。
- 結果地域のIT管理者は、他の地域に影響を与えることなく、自分の地域内のユーザーアカウントを管理できます。
- 管理ロールを割り当てます:
- 地域のITスタッフに「ユーザー管理者」ロールを付与し、その地域のAUにスコープを設定します。
- 結果: 地域のIT管理者は、他の地域に影響を与えることなく、自分の地域内のユーザーアカウントを管理できます。
### Entra ID役割
### Entra IDロール
- Entra IDを管理するために、Entra IDプリンシパルに割り当てることができる**組み込み役割**があります。
- 役割は[https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference)確認できます。
- 最も特権のある役割は**グローバル管理者**です。
- 役割の説明には、その**詳細な権限**が表示されます。
- Entra IDを管理するために、Entra IDプリンシパルに割り当てることができる**組み込みロール**があります。
- [https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference) でロールを確認できます。
- 最も特権のあるロールは**グローバル管理者**です。
- ロールの説明には、その**詳細な権限**が表示されます。
## 役割と権限
## ロールと権限
**役割**は**プリンシパル**に**スコープ**で割り当てられます `principal -[HAS ROLE]->(scope)`
**ロール**は**プリンシパル**に**スコープ**で割り当てられます: `principal -[HAS ROLE]->(scope)`
**グループ**に割り当てられた**役割**は、グループのすべての**メンバー**に**継承**されます。
**グループ**に割り当てられた**ロール**は、グループのすべての**メンバー**に**継承**されます。
役割が割り当てられたスコープに応じて、**役割**はスコープコンテナ内の**他のリソース**に**継承**される可能性があります。たとえば、ユーザーAが**サブスクリプション**に役割を持っている場合、彼はその**サブスクリプション内のすべてのリソースグループ**および**リソースグループ内のすべてのリソース**にその**役割**を持ちます。
ロールが割り当てられたスコープに応じて、**ロール**はスコープコンテナ内の**他のリソース**に**継承**される可能性があります。たとえば、ユーザーAが**サブスクリプション**にロールを持っている場合、彼はその**サブスクリプション内のすべてのリソースグループ**および**リソースグループ内のすべてのリソース**にその**ロール**を持ちます。
### **クラシック役割**
### クラシックロール
| **オーナー** | <ul><li>すべてのリソースへの完全なアクセス</li><li>他のユーザーのアクセスを管理できる</li></ul> | すべてのリソースタイプ |
| **オーナー** | <ul><li>すべてのリソースへの完全なアクセス</li><li>他のユーザーのアクセスを管理できる</li></ul> | すべてのリソースタイプ |
| ----------------------------- | ---------------------------------------------------------------------------------------- | ------------------ |
| **寄** | <ul><li>すべてのリソースへの完全なアクセス</li><li>アクセスを管理できない</li></ul> | すべてのリソースタイプ |
| **寄稿** | <ul><li>すべてのリソースへの完全なアクセス</li><li>アクセスを管理できない</li></ul> | すべてのリソースタイプ |
| **リーダー** | • すべてのリソースを表示 | すべてのリソースタイプ |
| **ユーザーアクセス管理者** | <ul><li>すべてのリソースを表示</li><li>他のユーザーのアクセスを管理できる</li></ul> | すべてのリソースタイプ |
| **ユーザーアクセス管理者** | <ul><li>すべてのリソースを表示</li><li>他のユーザーのアクセスを管理できる</li></ul> | すべてのリソースタイプ |
### 組み込み役割
### 組み込みロール
[ドキュメントから: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[Azureロールベースアクセス制御Azure RBAC](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview)には、**ユーザー、グループ、サービスプリンシパル、および管理されたアイデンティティ**に**割り当てることができる**いくつかのAzureの**組み込み役割**があります。役割の割り当ては、**Azureリソースへのアクセスを制御する**方法です。組み込み役割が組織の特定のニーズを満たさない場合は、独自の[**Azureカスタム役割**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)**を作成できます。**
[ドキュメントから: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[Azureロールベースアクセス制御Azure RBAC](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview)には、**ユーザー、グループ、サービスプリンシパル、マネージドアイデンティティ**に割り当てることができるいくつかのAzureの**組み込みロール**があります。ロールの割り当ては、**Azureリソースへのアクセスを制御する方法**です。組み込みロールが組織の特定のニーズを満たさない場合は、独自の[**Azureカスタムロール**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)**を作成できます。**
**組み込み**役割は、**意図されたリソース**にのみ適用されます。たとえば、以下の2つの**組み込み役割**の例を確認してください
**組み込み**ロールは、**意図されたリソース**にのみ適用されます。たとえば、以下の2つの**組み込みロール**の例を確認してください
| [ディスクバックアップリーダー](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#disk-backup-reader) | ディスクバックアップを実行するためのバックアップボールトへの権限を提供します。 | 3e5e47e6-65f7-47ef-90b5-e5dd4d455f24 |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------ |
| [仮想マシンユーザーログイン](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-user-login) | ポータル仮想マシンを表示し、通常のユーザーとしてログインします。 | fb879df8-f326-4884-b1cf-06f3ad86be52 |
| [仮想マシンユーザーログイン](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-user-login) | ポータル内の仮想マシンを表示し、通常のユーザーとしてログインします。 | fb879df8-f326-4884-b1cf-06f3ad86be52 |
これらの役割は、**論理コンテナ**(管理グループ、サブスクリプション、リソースグループなど)にも割り当てることができ、影響を受けるプリンシパルは**それらのコンテナ内のリソースに対して役割を持ちます**
これらのロールは、**論理コンテナ**(管理グループ、サブスクリプション、リソースグループなど)にも割り当てることができ、影響を受けるプリンシパルは**それらのコンテナ内のリソースに対して**持ちます。
- ここに[**すべてのAzure組み込み役割**](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)のリストがあります。
- ここに[**すべてのEntra ID組み込み役割**](https://learn.microsoft.com/en-us/azure/active-directory/roles/permissions-reference)のリストがあります。
- ここに[**すべてのAzure組み込みロール**](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)のリストがあります。
- ここに[**すべてのEntra ID組み込みロール**](https://learn.microsoft.com/en-us/azure/active-directory/roles/permissions-reference)のリストがあります。
### カスタム役割
### カスタムロール
- [**カスタム役割**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)を作成することも可能です。
- これらはスコープ内に作成されますが、役割は複数のスコープ(管理グループ、サブスクリプション、リソースグループ)に存在できます。
- カスタム役割が持つすべての詳細な権限を構成できます。
- [**カスタムロール**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)を作成することも可能です。
- これらはスコープ内に作成されますが、ロールは複数のスコープ(管理グループ、サブスクリプション、リソースグループ)に存在できます。
- カスタムロールが持つすべての詳細な権限を構成できます。
- 権限を除外することも可能です。
- 除外された権限を持つプリンシパルは、他の場所で権限が付与されていてもそれを使用できません。
- ワイルドカードを使用することも可能です。
- 使用される形式はJSONです。
- `actions`はリソースに対する制御アクションです。
- `dataActions`オブジェクト内のデータに対する権限です。
- `actions`リソースの作成、更新、削除などの管理操作に対する権限を指します。
- `dataActions`、リソース内のデータ操作に対する権限であり、リソースに含まれる実際のデータを読み取ったり、書き込んだり、削除したりすることを許可します。
- `notActions`および`notDataActions`は、ロールから特定の権限を除外するために使用されます。ただし、**それらを拒否するわけではありません**。別のロールがそれらを付与すれば、プリンシパルはそれらを持ちます。
- `assignableScopes`は、ロールを割り当てることができるスコープの配列です(管理グループ、サブスクリプション、リソースグループなど)。
カスタム役割のための権限JSONの例
カスタムロールの権限JSONの例:
```json
{
"properties": {
@@ -293,45 +296,62 @@ Azure Active Directoryの管理されたアイデンティティは、アプリ
```
### Permissions order
- リソースに対して**principalがアクセスを持つためには**、明示的な役割が付与される必要があります(いずれにせよ)**その権限を付与します**。
- 明示的な**拒否役割の割り当ては**、権限を付与する役割よりも優先されます。
- **リソースに対するアクセスを持つためには**、明示的な役割が付与される必要があります(いずれにせよ)**その権限を付与します**。
- 明示的な**拒否の割り当ては**、権限を付与する役割よりも優先されます。
<figure><img src="../../../images/image (191).png" alt=""><figcaption><p><a href="https://link.springer.com/chapter/10.1007/978-1-4842-7325-8_10">https://link.springer.com/chapter/10.1007/978-1-4842-7325-8_10</a></p></figcaption></figure>
### Global Administrator
Global Administratorは、**Entra IDテナントに対する完全な制御を付与する**Entra IDの役割です。ただし、デフォルトではAzureリソースに対する権限は付与されません。
Global Administratorは、**Entra IDテナントに対する完全な制御を付与する**Entra IDの役割です。しかし、デフォルトではAzureリソースに対する権限は付与されません。
Global Administratorの役割を持つユーザーは、**Root Management Group内でUser Access Administrator Azure役割に「昇格」する能力を持っています**。したがって、Global Administratorsは**すべてのAzureサブスクリプションおよび管理グループのアクセスを管理できます。**\
Global Administratorの役割を持つユーザーは、**Root Management Group内でUser Access Administrator Azure役割に「昇格」する能力を持っています**。したがって、Global Administratorsは**すべてのAzureサブスクリプション管理グループのアクセスを管理できます。**\
この昇格はページの下部で行うことができます: [https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/\~/Properties](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties)
<figure><img src="../../../images/image (349).png" alt=""><figcaption></figcaption></figure>
### Azure Policies
### Assignments Conditions & MFA
**Azure Policies**は、組織がリソースが特定の基準およびコンプライアンス要件を満たすことを保証するのに役立つルールです。これにより、**Azure内のリソースに対して設定を強制または監査することができます**。たとえば、許可されていない地域での仮想マシンの作成を防止したり、すべてのリソースに特定のタグを付けて追跡を確実にすることができます
役割が**主に割り当てられる条件を設定することが可能です**。一般的な条件として、特定の役割の権限にアクセスするためにMFAを要求することがあります:
```bash
az role assignment create \
--assignee <user-or-service-principal-id> \
--role <custom-role-id-or-name> \
--scope "/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f" \
--condition "PrincipalClaims['amr'] contains 'mfa'" \
--condition-version 2.0
```
### 拒否割り当て
Azure Policiesは**プロアクティブ**です:非準拠のリソースが作成または変更されるのを防ぐことができます。また、**リアクティブ**でもあり、既存の非準拠リソースを見つけて修正することができます。
役割の割り当てと同様に、**拒否割り当て**は**Azureリソースへのアクセスを制御する**ために使用されます。しかし、**拒否割り当て**はリソースへのアクセスを**明示的に拒否する**ために使用され、ユーザーが役割の割り当てを通じてアクセスを付与されている場合でも適用されます。**拒否割り当て**は**役割の割り当て**よりも優先されるため、ユーザーが役割の割り当てを通じてアクセスを付与されていても、拒否割り当てによって明示的にアクセスが拒否されている場合、拒否割り当てが優先されます。
#### **Key Concepts**
役割の割り当てと同様に、**拒否割り当て**は影響を受けるプリンシパルと拒否される権限を示すスコープに適用されます。さらに、拒否割り当ての場合、子リソースによる拒否の継承を**防ぐことが可能**です。
1. **Policy Definition**: 許可または要求されることを指定するJSONで書かれたルール。
2. **Policy Assignment**: 特定のスコープ(例:サブスクリプション、リソースグループ)にポリシーを適用すること。
3. **Initiatives**: より広範な強制のためにグループ化されたポリシーのコレクション
4. **Effect**: ポリシーがトリガーされたときに何が起こるかを指定します「Deny」、「Audit」、または「Append」
### Azureポリシー
**Azureポリシー**は、組織がリソースが特定の基準とコンプライアンス要件を満たすことを保証するためのルールです。これにより、**Azureのリソースに対して設定を強制または監査**することができます。たとえば、許可されていない地域での仮想マシンの作成を防止したり、すべてのリソースに追跡用の特定のタグが付けられていることを確認したりできます
Azureポリシーは**プロアクティブ**です:非準拠のリソースが作成または変更されるのを防ぐことができます。また、**リアクティブ**でもあり、既存の非準拠リソースを見つけて修正することができます。
#### **主要概念**
1. **ポリシー定義**: 許可または要求されることを指定するJSONで書かれたルール。
2. **ポリシー割り当て**: 特定のスコープ(例:サブスクリプション、リソースグループ)にポリシーを適用すること。
3. **イニシアティブ**: より広範な強制のためにグループ化されたポリシーのコレクション。
4. **効果**: ポリシーがトリガーされたときに何が起こるかを指定します(例:"拒否"、"監査"、または"追加")。
**いくつかの例:**
1. **特定のAzure地域でのコンプライアンスの確保**: このポリシーは、すべてのリソースが特定のAzure地域にデプロイされることを保証します。たとえば、企業はGDPRコンプライアンスのためにすべてのデータがヨーロッパに保存されることを望むかもしれません。
1. **特定のAzureリージョンでのコンプライアンスの確保**: このポリシーは、すべてのリソースが特定のAzureリージョンにデプロイされることを保証します。たとえば、企業はGDPRコンプライアンスのためにすべてのデータがヨーロッパに保存されることを望むかもしれません。
2. **命名基準の強制**: ポリシーはAzureリソースの命名規則を強制できます。これにより、大規模な環境でリソースを整理し、名前に基づいて簡単に識別するのに役立ちます。
3. **特定のリソースタイプの制限**: このポリシーは特定のタイプのリソースの作成を制限できます。たとえば、コストを制御するために特定のVMサイズのような高価なリソースタイプの作成を防ぐポリシーを設定できます。
4. **タグ付けポリシーの強制**: タグは、リソース管理に使用されるAzureリソースに関連付けられたキーと値のペアです。ポリシーは、すべてのリソースに特定のタグが存在するか、特定の値を持つ必要があることを強制できます。これは、コスト追跡、所有権、またはリソースの分類に役立ちます。
5. **リソースへの公共アクセスの制限**: ポリシーは、ストレージアカウントやデータベースのような特定のリソースに公共エンドポイントがないことを強制し、組織のネットワーク内でのみアクセスできるようにします。
6. **セキュリティ設定の自動適用**: ポリシーは、すべてのVMに特定のネットワークセキュリティグループを適用したり、すべてのストレージアカウントが暗号化を使用することを保証するなど、リソースにセキュリティ設定を自動的に適用するために使用できます。
3. **特定のリソースタイプの制限**: このポリシーは特定のタイプのリソースの作成を制限できます。たとえば、コストを制御するために特定のVMサイズのような高価なリソースタイプの作成を防ぐポリシーを設定できます。
4. **タグ付けポリシーの強制**: タグは、リソース管理に使用されるAzureリソースに関連付けられたキーと値のペアです。ポリシーは、特定のタグが存在するか、すべてのリソースに特定の値を持つ必要があることを強制できます。これは、コスト追跡、所有権、またはリソースの分類に役立ちます。
5. **リソースへの公共アクセスの制限**: ポリシーは、ストレージアカウントやデータベースのような特定のリソースに公共エンドポイントがないことを強制し、組織のネットワーク内でのみアクセス可能であることを保証できます。
6. **セキュリティ設定の自動適用**: ポリシーは、すべてのVMに特定のネットワークセキュリティグループを適用したり、すべてのストレージアカウントが暗号化を使用することを保証したりするなど、リソースにセキュリティ設定を自動的に適用するために使用できます。
Azure PoliciesはAzure階層の任意のレベルに添付できますが、**一般的にはルート管理グループ**または他の管理グループで使用されます。
AzureポリシーはAzure階層の任意のレベルに添付できますが、**通常はルート管理グループ**または他の管理グループで使用されます。
Azure policy json example:
Azureポリシーのjson例:
```json
{
"policyRule": {
@@ -362,8 +382,8 @@ Azure **権限は階層の任意の部分に割り当てることができます
**RBAC**(ロールベースのアクセス制御)は、前のセクションで見たものです:**リソースへのアクセスを付与するために、プリンシパルにロールを割り当てる**ことです。\
しかし、場合によっては、**より細かいアクセス管理**を提供したり、**数百の**ロール**割り当て**の管理を**簡素化**したいことがあります。
Azure **ABAC**(属性ベースのアクセス制御)は、特定のアクションの文脈における**属性に基づくロール割り当て条件**を追加することでAzure RBACを拡張します。_ロール割り当て条件_は、**より細かいアクセス制御を提供するためにオプションでロール割り当てに追加できる追加のチェック**です。条件は、ロール定義およびロール割り当ての一部として付与される権限を絞り込みます。たとえば、**オブジェクトを読み取るために特定のタグを持つ必要がある条件を追加できます**。\
条件を使用して特定のリソースへの**アクセスを明示的に拒否することはできません**。
Azure **ABAC**(属性ベースのアクセス制御)は、特定のアクションの文脈における**属性に基づくロール割り当て条件**を追加することでAzure RBACを拡張します。_ロール割り当て条件_は、**より細かいアクセス制御を提供するためにロール割り当てにオプションで追加できる追加のチェック**です。条件は、ロール定義およびロール割り当ての一部として付与される権限を絞り込みます。たとえば、**オブジェクトを読み取るために特定のタグを持つ必要がある条件を追加できます**。\
特定のリソースへの**アクセスを明示的に拒否する**ことは**条件を使用してはできません**。
## 参考文献