다음을 통해 공유


Azure Cosmos DB for Table에서 키 기반 인증 사용 안 함(미리 보기)

적용 대상: 테이블

이 문서에서는 Azure Cosmos DB for Table 계정에 대한 키 기반 권한 부여(또는 리소스 소유자 암호 자격 증명 인증)를 사용하지 않도록 설정하는 프로세스를 설명합니다.

키 기반 권한 부여를 사용하지 않도록 설정하면 보다 안전한 Microsoft Entra 인증 방법 없이 계정을 사용할 수 없습니다. 이 절차는 보안 워크로드의 새 계정에서 수행해야 하는 단계입니다. 또는 보안 워크로드 패턴으로 마이그레이션되는 기존 계정에서 이 절차를 수행합니다.

필수 조건

키 기반 인증 사용 안 함

먼저 애플리케이션에서 Microsoft Entra 인증을 사용해야 하므로 기존 계정에 대한 키 기반 인증을 사용하지 않도록 설정합니다. 기존 계정을 수정 properties.disableLocalAuth 하는 데 사용합니다az resource update.

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. 새 계정으로 Bicep 파일을 배포하는 데 사용합니다 az deployment group create .

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

먼저 애플리케이션에서 Microsoft Entra 인증을 사용해야 하므로 기존 계정에 대한 키 기반 인증을 사용하지 않도록 설정합니다. Set-AzResource 기존 계정을 각각 읽고 업데이트하는 데 사용합니다Get-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);

Important

이 코드 샘플에서는 NuGet의 Azure.Data.Tables 라이브러리 및 Azure.Identity 라이브러리를 사용합니다.

다음 단계