이 문서에서는 Azure Cosmos DB for Table 계정에 대한 키 기반 권한 부여(또는 리소스 소유자 암호 자격 증명 인증)를 사용하지 않도록 설정하는 프로세스를 설명합니다.
키 기반 권한 부여를 사용하지 않도록 설정하면 보다 안전한 Microsoft Entra 인증 방법 없이 계정을 사용할 수 없습니다. 이 절차는 보안 워크로드의 새 계정에서 수행해야 하는 단계입니다. 또는 보안 워크로드 패턴으로 마이그레이션되는 기존 계정에서 이 절차를 수행합니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 Azure에 인증을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI로 확장 사용 및 관리를 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
- Azure PowerShell을 로컬로 사용하도록 선택하는 경우:
- 최신 버전의 Az PowerShell 모듈을 설치합니다.
- Connect-AzAccount cmdlet을 사용하여 Azure 계정에 로그인합니다.
- Azure Cloud Shell을 사용하도록 선택하는 경우:
- 자세한 내용은 Azure Cloud Shell 개요를 참조하세요.
키 기반 인증 사용 안 함
먼저 애플리케이션에서 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 인증을 사용해야 하므로 키 기반 인증이 비활성화된 새 계정을 만듭니다.
키 기반 인증을 사용하지 않도록 설정하여 새 계정을 배포하는 새 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 인증을 사용해야 하므로 기존 계정에 대한 키 기반 인증을 사용하지 않도록 설정합니다. Get-AzResource
와 Set-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
애플리케이션이 Microsoft Entra 인증만 사용해야 하므로 키 기반 인증이 비활성화된 새 Azure Cosmos DB for NoSQL 계정을 만들려면 다음 단계를 사용합니다.
NoSQL용 새 Azure Cosmos DB 계정을 설정할 때 계정 만들기 프로세스의 보안 섹션으로 이동합니다.
그런 다음 키 기반 인증 옵션에 대해 사용 안 함을 선택합니다.
인증이 비활성화되어 있는지 확인
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.Tables
라이브러리 및 Azure.Identity
라이브러리를 사용합니다.