次の方法で共有


Azure Cosmos DB for Table でキーベースの認証を無効にする (プレビュー)

適用対象: Table

この記事では、Azure Cosmos DB for Table アカウントのキーベースの認可 (またはリソース所有者のパスワード資格情報認証) を無効にする手順について説明します。

キーベースの認可を無効にすると、より安全な Microsoft Entra 認証方法なしではアカウントを使用できなくなります。 この手順は、セキュリティで保護されたワークロードの新しいアカウントに対して実行する必要があるステップです。 または、セキュリティで保護されたワークロード パターンに移行されている既存のアカウントに対して、この手順を実行します。

前提条件

  • 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 を実行します。

キーベースの認証を無効にする

最初に、アプリケーションで Microsoft Entra 認証の使用が必要になるように、既存のアカウントに対するキーベースの認証を無効にします。 az resource update を使用して、既存のアカウントの properties.disableLocalAuth を変更します。

az resource update \
    --resource-group "<name-of-existing-resource-group>" \
    --name "<name-of-existing-account>" \
    --resource-type "Microsoft.DocumentDB/databaseAccounts" \
    --set properties.disableLocalAuth=true

最初に、アプリケーションで Microsoft Entra 認証の使用が必要になるように、キーベースの認証を無効にして新しいアカウントを作成します。

  1. 新しい Bicep ファイルを作成し、キーベースの認証を無効にして、新しいアカウントをデプロイします。 ファイルに deploy-new-account.bicep という名前を付けます。

    metadata description = 'Deploys a new Azure Cosmos DB account with key-based auth disabled.'
    
    @description('Name of the Azure Cosmos DB account.')
    param name string = 'csms-${uniqueString(resourceGroup().id)}'
    
    @description('Primary location for the Azure Cosmos DB account.')
    param location string = resourceGroup().location
    
    resource account 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = {
      name: name
      location: location
      kind: 'GlobalDocumentDB'
      properties: {
        databaseAccountOfferType: 'Standard'
        locations: [
          {
            locationName: location
          }
        ]
        disableLocalAuth: true
      }
    }
    
  2. az deployment group create を使用して、新しいアカウントで Bicep ファイルをデプロイします。

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --template-file deploy-new-account.bicep
    

最初に、アプリケーションで Microsoft Entra 認証の使用が必要になるように、既存のアカウントに対するキーベースの認証を無効にします。 Get-AzResourceSet-AzResource を使用して、それぞれで既存アカウントの読み取りと更新を行います。

$parameters = @{
    ResourceGroupName = "<name-of-existing-resource-group>"
    ResourceName = "<name-of-existing-account>"
    ResourceType = "Microsoft.DocumentDB/databaseAccounts"
}
$resource = Get-AzResource @parameters

$resource.Properties.DisableLocalAuth = $true


$resource | Set-AzResource -Force

認証が無効になっていることを確認する

Azure SDK を使用して、リソース所有者パスワード資格情報 (ROPC) を使用した Azure Cosmos DB for Table への接続を試みます。 この試みは失敗するはずです。 必要な場合のために、一般的なプログラミング言語のコード サンプルを以下に示します。

using Azure.Data.Tables;
using Azure.Core;

string connectionString = "AccountEndpoint=<table-endpoint>;AccountKey=<key>;";

TableServiceClient client = new(connectionString);

重要

このコード サンプルでは、NuGet の Azure.Data.TablesAzure.Identity のライブラリを使用しています。

次のステップ