Azure Cosmos DB for Table에서 키 기반 인증 사용 안 함(미리 보기)
적용 대상: 테이블
이 문서에서는 Azure Cosmos DB for Table 계정에 대한 키 기반 권한 부여(또는 리소스 소유자 암호 자격 증명 인증)를 사용하지 않도록 설정하는 프로세스를 설명합니다.
키 기반 권한 부여를 사용하지 않도록 설정하면 보다 안전한 Microsoft Entra 인증 방법 없이 계정을 사용할 수 없습니다. 이 절차는 보안 워크로드의 새 계정에서 수행해야 하는 단계입니다. 또는 보안 워크로드 패턴으로 마이그레이션되는 기존 계정에서 이 절차를 수행합니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
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를 실행합니다.
- Azure PowerShell을 로컬로 사용하도록 선택하는 경우:
- 최신 버전의 Az PowerShell 모듈을 설치합니다.
- Connect-AzAccount cmdlet을 사용하여 Azure 계정에 로그인합니다.
- Azure Cloud Shell을 사용하도록 선택하는 경우:
- 자세한 내용은 Azure Cloud Shell 개요를 참조하세요.
키 기반 인증 사용 안 함
먼저 애플리케이션에서 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 인증을 사용해야 하므로 키 기반 인증이 비활성화된 새 계정을 만듭니다.
키 기반 인증을 사용하지 않도록 설정하여 새 계정을 배포하는 새 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 } }
새 계정으로 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
라이브러리를 사용합니다.