次の方法で共有


Operator Nexus でマネージド資格情報のローテーション用にキー コンテナーを設定する

Azure Operator Nexus では、シークレットと証明書を利用して、プラットフォーム全体のコンポーネント セキュリティを管理します。 Operator Nexus プラットフォームは、これらのシークレットと証明書のローテーションを処理します。 既定では、Operator Nexus は資格情報をマネージド キー コンテナーに格納します。 ローテーションされた資格情報を独自のキー コンテナーに保持するには、ユーザーは、ローテーションされた資格情報を受信するように独自のキー コンテナーを構成する必要があります。 この構成を行うには、ユーザーは、Azure Operator Nexus インスタンスのキー コンテナーを設定する必要があります。 作成後、ユーザーは、更新された資格情報の書き込み、さらに顧客キー コンテナーの Nexus クラスター リソースへのリンクがOperator Nexus Platform により可能になるように、カスタマー キー コンテナーにロールの割り当てを追加する必要があります。

前提条件

  • 適切な CLI 拡張機能の最新バージョンをインストールする
  • 顧客のサブスクリプションのサブスクリプション ID を取得する

Note

1 つのキー コンテナーを任意の数のクラスターに使用できます。

クラスター マネージャーのマネージド ID を使用してキー コンテナーを構成する

2024-06-01-public-preview API 以降のバージョンでは、ローテーションされた資格情報をキー コンテナーに配信するための書き込みアクセスに、クラスター マネージャーのマネージド ID を使用します。 クラスター マネージャー ID は、システム割り当てまたはユーザー割り当てである場合があり、API 経由または CLI 経由で直接管理できます。

これらの例では、クラスター マネージャーのマネージド ID を構成する方法について説明します。

  • システム割り当て ID を使用してクラスター マネージャーを作成または更新する
        az networkcloud clustermanager create --name "clusterManagerName" --location "location" \
        --analytics-workspace-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
        --fabric-controller-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/fabricControllerName" \
        --managed-resource-group-configuration name="my-managed-rg" --tags key1="myvalue1" key2="myvalue2" --resource-group "resourceGroupName" --mi-system-assigned

  • ユーザー割り当て ID を使用してクラスター マネージャーを作成または更新する
        az networkcloud clustermanager create --name <Cluster Manager Name> --location <Location> \
        --analytics-workspace-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
        --fabric-controller-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/fabricControllerName" \
        --managed-resource-group-configuration name="my-managed-rg" --tags key1="myvalue1" key2="myvalue2" \
        --resource-group <Resource Group Name> --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAI"

  • クラスター マネージャーにシステム割り当て ID を追加する
        az networkcloud clustermanager update --name <Cluster Manager Name> --resource-group <Resource Group Name> --mi-system-assigned

  • クラスター マネージャーにユーザー割り当て ID を追加する
        az networkcloud clustermanager update --name <Cluster Manager Name> --resource-group <Resource Group Name> \
        --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAI"

Nexus クラスター シークレット アーカイブを構成する

カスタマー キー コンテナーを、Nexus クラスターのシークレット アーカイブとして登録します。 キー コンテナーのリソース ID は、クラスターで構成され、クラスターのシークレットを保存するために有効化されている必要があります。

例:

# Set and enable Customer Key Vault on Nexus cluster
az networkcloud cluster update --ids /subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Nexus Cluster Name> --secret-archive "{key-vault-id:<Key Vault Resource ID>,use-key-vault:true}"

# Show Customer Key Vault setting (secretArchive) on the Nexus cluster
az networkcloud cluster show --ids /subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Nexus Cluster Name> --query secretArchive

詳細については、以下を参照してください。

az networkcloud cluster update --secret-archive ?? --help

クラスター マネージャー マネージド ID のプリンシパル ID を取得する

マネージド ID を構成したら、CLI を使って、クラスター マネージャー内の ID および関連付けられたプリンシパル ID のデータを表示します。

例:

az networkcloud clustermanager show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Manager Resource Group Name>/providers/Microsoft.NetworkCloud/clusterManagers/<Cluster Manager Name>

システム割り当て ID の例:

    "identity": {
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "type": "SystemAssigned"
    },

ユーザー割り当て ID の例:

    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
                "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
                "principalId": "bbbbbbbb-cccc-dddd-2222-333333333333"
            }
        }
    },

マネージド ID プリンシパル ID に適切なロールを割り当てるには、「資格情報をローテーションするためにマネージド ID アクセスをキー コンテナーに付与する」を参照してください。

クラスターのマネージド ID を使用してキー コンテナーを構成する

重要

資格情報をローテーションするためにキー コンテナーを構成するこの方法はプレビュー段階であることに注意してください。 この方法は、ファイアウォールが有効になっていないキー コンテナーでのみ使用できます。 ご利用の環境でキー コンテナーのファイアウォールを有効にする必要がある場合は、既存のクラスター マネージャー ID の方法を使用してください。

2024-10-01-preview API 以降、クラスター マネージャーの代わりに、Nexus クラスター リソース内にあるマネージド ID を使用できます。 クラスター マネージド ID は、システム割り当てまたはユーザー割り当てである場合があり、API 経由または CLI 経由で直接管理できます。

Note

Nexus クラスターのマネージド ID がキー コンテナー用に構成されている場合、これらの設定は「クラスター マネージャーのマネージド ID を使用してキー コンテナーを構成する」で構成した設定よりも優先されます

Nexus クラスター シークレット アーカイブ設定を構成する

Nexus クラスターの secret-archive-settings では、ローテーションされた資格情報が格納されている Azure キー コンテナー URI と、そこにアクセスするために使用するマネージド ID を指定します。

次の例では、マネージド ID を Nexus クラスター用に構成する方法と、secret-archive-settings の一部として構成する方法について説明します。

Note

シークレット アーカイブ設定では、キー コンテナーのリソース ID ではなく、キー コンテナー URI を指定します。また、指定されたマネージド ID は、Nexus クラスター用に構成する必要があります。

  • ローテーションされた資格情報を含むキー コンテナーにアクセスするためのシステム割り当て ID を使用して Nexus クラスターを作成する。
az networkcloud cluster create --name "<cluster-name>" \
  --resource-group "<cluster-resource-group>" \
  ...
  --mi-system-assigned \
  --secret-archive-settings identity-type="SystemAssignedIdentity" vault-uri="https://<key vault name>.vault.azure.net/"
  ...
  --subscription "<subscription>"

  • ローテーションされた資格情報を含むキー コンテナーにアクセスするためのユーザー割り当て ID を使用して Nexus クラスターを作成する。
az networkcloud cluster create --name "<cluster-name>" \
  --resource-group "<cluster-resource-group>" \
  ...
  --mi-user-assigned "<user-assigned-identity-resource-id>" \
  --secret-archive-settings identity-type="UserAssignedIdentity" identity-resource-id="<user-assigned-identity-resource-id>" vault-uri="https://<key vault name>.vault.azure.net/"
  ...
  --subscription "<subscription>"

  • ローテーションされた資格情報を含むキー コンテナーにアクセスするためのシステム割り当て ID を使用して既存の Nexus クラスターを更新する。
az networkcloud cluster update --ids <cluster-resource-id> \
  --mi-system-assigned \
  --secret-archive-settings identity-type="SystemAssignedIdentity" vault-uri="https://<key vault name>.vault.azure.net/"

  • ユーザー割り当て ID を使用して既存の Nexus クラスターを更新する
az networkcloud cluster update --ids <cluster-resource-id> \
  --mi-user-assigned "<user-assigned-identity-resource-id>" \
  --secret-archive-settings identity-type="UserAssignedIdentity" identity-resource-id="<user-assigned-identity-resource-id>" vault-uri="https://<key vault name>.vault.azure.net/"

詳細については、以下を参照してください。

az networkcloud cluster update --secret-archive-settings '??' --help

クラスター マネージド ID のプリンシパル ID を取得する

Nexus クラスター用にマネージド ID を構成したら、CLI を使用して ID を表示し、シークレット アーカイブ設定で指定されているマネージド ID の principalId を取得します。

例:

az networkcloud cluster show --ids <cluster-resource-id>

システム割り当て ID の例:

    "identity": {
        "principalId": "2cb564c1-b4e5-4c71-bbc1-6ae259aa5f87",
        "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
        "type": "SystemAssigned"
    },

ユーザー割り当て ID の例:

    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
                "clientId": "e67dd610-99cf-4853-9fa0-d236b214e984",
                "principalId": "8e6d23d6-bb6b-4cf3-a00f-4cd640ab1a24"
            }
        }
    },

マネージド ID プリンシパル ID に適切なロールを割り当てるには、「資格情報をローテーションするためにマネージド ID アクセスをキー コンテナーに付与する」を参照してください。

資格情報をローテーションするためにマネージド ID にキー コンテナーへのアクセスを付与する

Note

ユーザー割り当てマネージド ID の作成およびそれに対するキー コンテナーへのアクセスの割り当ては、Nexus クラスターが作成される前かつデプロイの前に行うことができます。 システム割り当て ID は、クラスター作成後、デプロイの前に、キー コンテナーへのアクセスを付与する必要があります。

  • オペレーター Nexus キー コンテナー ライター サービス ロールを割り当てます。 [Azure ロールベースのアクセス制御] が、[アクセス構成] ビュー上でキー コンテナーのアクセス許可モデルとして選択されていることを確認します。 次に、[アクセス制御] ビューで、ロールの割り当ての追加を選びます。
Role Name ロールの定義 ID
Operator Nexus キー コンテナー ライター サービス ロール (プレビュー) 44f0a1a8-6fea-4b35-980a-8ff50c487c97

例:
az role assignment create --assignee <Managed Identity Principal Id> --role 44f0a1a8-6fea-4b35-980a-8ff50c487c97 --scope /subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.KeyVault/vaults/<Key Vault Name>

ユーザー割り当てマネージド ID を使用している場合は、「ユーザー割り当て ID にアクセス許可を追加する」に進みます

ユーザー割り当て ID にアクセス許可を追加する

キー コンテナーへのアクセスにユーザー割り当てマネージド ID を使用しているお客様は Nexus プラットフォームのその ID に対してアクセスをプロビジョニングする必要があります。 具体的には、Microsoft.ManagedIdentity/userAssignedIdentities/assign/action アクセス許可を AFOI-NC-MGMT-PME-PROD Microsoft Entra ID のユーザー割り当て ID に追加する必要があります。 これは、このプラットフォームの既知の制限事項であり、今後対処されます。

  1. Azure portal を開き、問題となっているユーザー割り当て ID を見つけます。
  2. [アクセス制御 (IAM)][ロール割り当ての追加] をクリックします。
  3. [ロール] で [マネージド ID オペレーター] を選びます。 (マネージド ID オペレーター ロールが提供するアクセス許可を参照してください)。
  4. アクセスの割り当て先: ユーザー、グループ、またはサービス プリンシパル
  5. [メンバー] で AFOI-NC-MGMT-PME-PROD アプリケーションを選びます。
  6. 確認して割り当てます。