マネージド ID アクセスを Azure リソースまたは別のリソースに割り当てる

Azure リソース用マネージド ID は、Microsoft Entra ID の機能です。 Azure リソースのマネージド ID をサポートする各 Azure サービスは、それぞれ固有のタイムラインの下で提供されます。 ご利用のリソースに対するマネージド ID の提供状態と既知の問題をあらかじめ確認しておいてください。

この記事では、Azure 仮想マシン (VM) マネージド ID アクセスを Azure ストレージ アカウントに付与する方法について説明します。 マネージド ID で Azure リソースを構成した後、他のセキュリティ プリンシパルと同じように、別のリソースにマネージド ID アクセスを付与できます。

前提条件

Azure portal を使用して他のリソースにマネージド ID アクセスを割り当てるための Azure RBAC の使用方法

ヒント

この記事の手順は、開始するポータルによって若干異なる場合があります。

重要

次の手順は、Azure RBAC を使用してサービスへのアクセス権を付与する方法を示しています。 アクセス権の付与方法に関する特定のサービス ドキュメント (Azure Data Explorer の手順など) を確認してください。 一部の Azure サービスは、データ プレーンで Azure RBAC を採用している最中です。

  1. マネージド ID を構成した Azure サブスクリプションに関連付けられているアカウントを使用して、Azure portal にサインインします。

  2. アクセス制御を変更する目的のリソースに移動します。 この例では、Azure 仮想マシン (VM) アクセスをストレージ アカウントに付与し、ストレージ アカウントに移動できるようにします。

  3. [アクセス制御 (IAM)] を選択します。

  4. [追加]>[ロールの割り当ての追加] を選択して、[ロールの割り当ての追加] ページを開きます。

  5. ロールとマネージド ID を選択します。 詳細な手順については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。

    ロールの割り当てを追加するためのページを示すスクリーンショット。

CLI を使用して、Azure RBAC を使用して他のリソースにマネージド ID アクセスを割り当てる

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

  1. この例では、Azure 仮想マシン (VM) マネージド アクセスをストレージ アカウントに付与します。 まず、az resource list を使用して、myVM という名前の VM のサービス プリンシパルを取得します。

    spID=$(az resource list -n myVM --query [*].identity.principalId --out tsv)
    

    Azure 仮想マシン (VM) スケール セットについてもコマンドはほぼ同じですが、ここでは、"DevTestVMSS" という名前の VM セットのサービス プリンシパルを取得します。

    spID=$(az resource list -n DevTestVMSS --query [*].identity.principalId --out tsv)
    
  2. サービス プリンシパル ID を作成したら、az role assignment create を使用して、"myStorageAcct" というストレージ アカウントに、仮想マシンまたは仮想マシン スケール セットの閲覧者アクセスを付与します。

    az role assignment create --assignee $spID --role 'Reader' --scope /subscriptions/<mySubscriptionID>/resourceGroups/<myResourceGroup>/providers/Microsoft.Storage/storageAccounts/myStorageAcct
    

PowerShell を使用して、Azure RBAC を使用して他のリソースにマネージド ID アクセスを割り当てる

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、Azure PowerShell のインストールに関する記事を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

この例のスクリプトを実行するには、次の 2 つのオプションがあります。

  • Azure Cloud Shell を使用します。これは、コード ブロックの右上隅にある [試してみる] ボタンを使用して開くことができます。
  • 最新バージョンの Azure PowerShell をインストールしてスクリプトをローカルで実行した後、Connect-AzAccount を使用して Azure にサインインします。
  1. Azure VM などの Azure リソースでマネージド ID を有効にします。

  2. Azure 仮想マシン (VM) アクセスをストレージ アカウントに付与します。

    1. Get-AzVM を使用して myVM という VM のサービス プリンシパルを取得します。これは、マネージド ID が有効になっているときに作成されたものです。
    2. New-AzRoleAssignment を使用して、VM の閲覧者アクセスを myStorageAcct というストレージ アカウントに付与します。
    $spID = (Get-AzVM -ResourceGroupName myRG -Name myVM).identity.principalid
    New-AzRoleAssignment -ObjectId $spID -RoleDefinitionName "Reader" -Scope "/subscriptions/<mySubscriptionID>/resourceGroups/<myResourceGroup>/providers/Microsoft.Storage/storageAccounts/<myStorageAcct>"
    

次のステップ