Azure ロールベースのアクセス制御を使用して Azure Kubernetes Fleet Manager リソースへのアクセスを許可する
Azure ロールベースのアクセス制御 (Azure RBAC) は Azure Resource Manager 上に構築された承認システムであり、Azure リソースに対するアクセスをきめ細かく管理できます。
この記事では、Azure Kubernetes Fleet Manager (Kubernetes Fleet) リソースへのアクセスに使用できるさまざまな組み込み Azure RBAC ロールの概要を説明します。
コントロール プレーン
このロールは、Azure Resource Manager (ARM) Fleet リソースおよびサブリソースへのアクセスを許可し、ハブ クラスターの有無にかかわらず両方の Kubernetes Fleet リソースに適用されます。
ロール名 | 説明 | 使用方法 |
---|---|---|
Azure Kubernetes Fleet Manager 共同作成者 | このロールは、Azure Kubernetes Fleet Manager によって提供される Azure リソース (フリート、フリート メンバー、フリート更新戦略、フリート更新実行などを含む) への読み取りおよび書き込みアクセスを許可します。 | このロールを使用すると、Kubernetes Fleet リソースおよびサブリソースにのみ適用される共同作成者のアクセス許可を付与できます。 たとえば、このロールを Fleet リソースの定義と保守を担当する Azure 管理者に付与できます。 |
データ プレーン
これらのロールは、Fleet ハブの Kubernetes オブジェクトへのアクセスを許可するため、ハブ クラスターを持つ Kubernetes Fleet リソースにのみ適用されます。
データ プレーン ロールは、Fleet ハブ クラスター スコープで割り当てることも、ロールの割り当てスコープに /namespace/<namespace>
を追加することで個々の Kubernetes 名前空間スコープで割り当てることもできます。
ロール名 | 説明 | 使用方法 |
---|---|---|
Azure Kubernetes Fleet Manager RBAC リーダー | フリートマネージド ハブ クラスター内の名前空間内のほとんどの Kubernetes リソースへの読み取り専用アクセスを許可します。 ロールまたはロールのバインドを表示することはできません。 このロールでは、シークレットの表示は許可されません。これは、シークレットの内容を読み取ると、名前空間の ServiceAccount 資格情報にアクセスでき、それにより名前空間の任意の ServiceAccount として API にアクセスできるようになるためです (特権エスカレーションの形式)。 クラスター スコープでこのロールを適用すると、すべての名前空間へのアクセス権が付与されます。 |
このロールを使用すると、選択した機密ではない Kubernetes オブジェクトを名前空間またはクラスター スコープで読み取る機能を付与できます。 たとえば、このロールをレビュー目的で付与できます。 |
Azure Kubernetes Fleet Manager RBAC ライター | フリートマネージド ハブ クラスター内の名前空間内のほとんどの Kubernetes リソースへの読み取りおよび書き込みアクセスを許可します。 このロールでは、ロールまたはロールのバインドを表示または変更することはできません。 ただし、このロールを使用すると、名前空間内の任意の ServiceAccount としてシークレットにアクセスできるため、名前空間内の任意の ServiceAccount の API アクセス レベルを取得するために使用できます。 クラスター スコープでこのロールを適用すると、すべての名前空間へのアクセス権が付与されます。 |
このロールを使用すると、選択した Kubernetes オブジェクトを名前空間またはクラスター スコープで書き込む機能を付与できます。 たとえば、特定の名前空間内のオブジェクトを担当するプロジェクト チームによって使用されます。 |
Azure Kubernetes Fleet Manager RBAC 管理者 | フリートマネージド ハブ クラスター内の名前空間内の Kubernetes リソースへの読み取りおよび書き込みアクセスを許可します。 名前空間内のほとんどのオブジェクト (ResourceQuota オブジェクトと名前空間オブジェクト自体を除く) に対する書き込みアクセス許可を付与します。 クラスター スコープでこのロールを適用すると、すべての名前空間へのアクセス権が付与されます。 |
このロールを使用すると、選択した Kubernetes オブジェクト (ロールおよびロール バインドを含む) を名前空間またはクラスター スコープで管理する機能を付与できます。 たとえば、特定の名前空間内のオブジェクトを担当するプロジェクト チームによって使用されます。 |
Azure Kubernetes Fleet Manager RBAC クラスター管理者 | フリートマネージド ハブ クラスター内のすべての Kubernetes リソースへの読み取り/書き込みアクセスを許可します。 | このロールを使用すると、名前空間またはクラスター スコープですべての Kubernetes オブジェクト (CRD を含む) へのアクセスを許可できます。 |
ロールの割り当ての例
Azure CLI を使用して Azure RBAC ロールを付与できます。 たとえば、Kubernetes Fleet ハブ クラスター スコープでロールの割り当てを作成するには:
IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)
az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID"
個々の Kubernetes 名前空間にロールの割り当てのスコープを設定することもできます。 たとえば、Kubernetes Fleet ハブの既定の Kubernetes 名前空間に対するロールの割り当てを作成するには:
IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)
az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID/namespaces/default"
Azure Kubernetes Service