演習 - Azure VM にシステム割り当てマネージド ID を構成する

完了

アプリをホストしている仮想マシン (VM) は、Azure にデプロイされています。 次に、会社の Azure サブスクリプションでマネージド ID を有効にする必要があります。 目的は、在庫追跡アプリが必要な Azure リソースにアクセスできるようにすることです。

このユニットでは、VM に対してシステム割り当てマネージド ID を作成します。 ID 内から Azure リソースにアクセスする方法について確認します。

環境を設定する

  1. 次のコードを使って、会社の非公開データを格納する Azure Key Vault のインスタンスを作成します。 すべての Azure Key Vault 名はグローバルに一意である必要があります。

    export VMNAME=prodserver
    export KVNAME=furniture-secrets$RANDOM
    
    az keyvault create --name $KVNAME \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --default-action Allow \
        --location $(az resource list --output tsv --query [0].location) \
        --sku standard
    
  2. 会社のアプリをホストする VM を作成します。 環境変数にパブリック IP アドレスを格納します。

    export publicIP=$(az vm create \
        --name $VMNAME \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --image Ubuntu2204 \
        --generate-ssh-keys \
        --output tsv \
        --query "publicIpAddress")
    

    Note

    VM の作成には数分かかることがあります。

Azure VM にシステム割り当てマネージド ID を構成する

  1. システム割り当てマネージド ID を VM に割り当てます。

    az vm identity assign \
      --name $VMNAME \
      --resource-group "<rgn>[sandbox resource group name]</rgn>"
    

    このコマンドは、マネージド ID を示す応答を返します。 次は応答の例です。

    {
        "systemAssignedIdentity": "a78ddd60-183b-4e27-9f0d-c11a11c417d8",
        "userAssignedIdentities": {}
    }
    

キーコンテナーを使用してシークレットを格納する

  1. キー コンテナーに接続文字列を追加します。

    az keyvault secret set \
      --vault-name $KVNAME \
      --name DBCredentials \
      --value "Server=tcp:prodserverSQL.database.windows.net,1433;Database=myDataBase;User ID=mylogin@myserver;Password=examplePassword;Trusted_Connection=False;Encrypt=True;"
    
  2. キー コンテナー名をメモしておきます。

    echo $KVNAME
    

会社の在庫追跡アプリ用に VM を設定する

  1. SSH を使用して VM にアクセスします。

    ssh $publicIP
    

    プロンプトで「yes」と入力します。

  2. 次の演習では、モジュールのサンプル アプリで使う VM に .NET Core バージョンをダウンロードしてインストールします。

    sudo snap install dotnet-sdk --classic --channel=3.1
    

    Note

    .NET SDK のインストールの完了には、数分かかる場合があります。

  3. このモジュールのサンプル アプリのソース コードをダウンロードします。

    git clone https://github.com/MicrosoftDocs/mslearn-authenticate-apps-with-managed-identities identity
    
  4. SSH セッションを終了します。

    exit