적용 대상:
NoSQL
MongoDB
Cassandra
Gremlin
테이블
기본/보조 키는 데이터베이스 계정의 모든 관리 리소스에 대한 액세스 권한을 제공합니다. 기본/보조 키:
- 계정, 데이터베이스, 사용자 및 사용 권한에 대한 액세스를 제공합니다.
- 컨테이너 및 문서에 대한 세분화된 액세스를 제공하는 데 사용할 수 없습니다.
- 계정 생성 중에 만들어집니다.
- 언제든지 다시 생성할 수 있습니다.
Important
사용 가능한 가장 안전한 인증 흐름을 사용하는 것이 권장됩니다. 이 절차에서 설명된 인증 흐름은 다른 흐름에는 없는 위험을 전달하며, 애플리케이션에서 매우 높은 신뢰 수준을 요구합니다. 이 흐름은 관리 ID와 같은 보다 안전한 다른 흐름을 실행할 수 없는 경우에만 사용되어야 합니다.
Azure Cosmos DB의 경우 Microsoft Entra 인증은 사용 가능한 가장 안전한 인증 메커니즘입니다. API에 대한 적절한 보안 가이드를 검토합니다.
각 계정은 두 개의 키(주 키와 보조 키)로 구성됩니다. 이중 키를 사용하는 목적은 키를 다시 생성하거나 롤링하여 계정 및 데이터에 지속적인 액세스를 제공하는 것입니다.
기본/보조 키는 읽기-쓰기 및 읽기 전용의 두 가지 버전으로 제공됩니다. 이러한 읽기 전용 키는 계정에 대한 읽기 작업만 허용합니다. 읽기 권한 리소스에 대한 액세스 권한을 제공하지 않습니다.
필수 조건
기본 키 가져오기
기본 키는 일반적으로 Azure Portal을 사용하거나 자동화를 통해 배치할 수 있습니다.
Azure Portal을 사용하여 네 가지 기본 제공 키 중 하나를 가져옵니다.
- 기본 읽기-쓰기
- 기본 읽기 전용
- 보조 읽기-쓰기
- 보조 읽기 전용
Azure Portal에 로그인합니다(https://portal.azure.com).
기존 Azure Cosmos DB 계정으로 이동합니다.
계정 리소스 창의 서비스 메뉴의 설정 섹션에서 키를 선택합니다.
읽기/쓰기 키 또는 읽기 전용 섹션에서 기본 키 또는 보조 키 필드의 값을 찾아서 기록합니다.
팁
값을 기록하기 전에 키를 표시해야 할 수 있습니다. 기본적으로 키는 숨겨집니다.
이 Azure CLI 스크립트를 사용하여 Azure Cosmos DB 계정에서 키 또는 연결 문자열 가져옵니다.
az cosmosdb keys list \
--resource-group "<name-of-existing-resource-group>" \
--name "<name-of-existing-account>" \
--type "keys"
Warning
Azure CLI는 비밀을 출력하면 계정에 대한 보안이 손상될 수 있다는 경고를 렌더링합니다.
--type
인수 옵션은 다음과 같습니다.
connection-strings
keys
read-only-keys
자세한 내용은 az cosmosdb keys list
를 참조하세요.
이 Azure PowerShell 스크립트를 사용하여 Azure Cosmos DB 계정에서 키 또는 연결 문자열 가져옵니다.
$parameters = @{
ResourceGroupName = "<name-of-existing-resource-group>"
Name = "<name-of-existing-account>"
Type = "Keys"
}
Get-AzCosmosDBAccountKey @parameters
Type
매개 변수 옵션은 다음과 같습니다.
ConnectionStrings
Keys
ReadOnlyKeys
자세한 내용은 Get-AzCosmosDBAccountKey
를 참조하세요.
이 예제 Bicep 템플릿은 기존 Azure Cosmos DB 계정에 대한 모든 자격 증명을 출력합니다.
metadata description = 'Gets all keys and connection strings for an Azure Cosmos DB account.'
@description('The name of the Azure Cosmos DB account.')
param accountName string
resource account 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' existing = {
name: accountName
}
output endpoint string = account.properties.documentEndpoint
var keys = account.listKeys()
output keys object = {
primary: {
readWrite: keys.primaryMasterKey
readOnly: keys.primaryReadonlyMasterKey
}
secondary: {
readWrite: keys.secondaryMasterKey
readOnly: keys.secondaryReadonlyMasterKey
}
}
var connectionStrings = account.listConnectionStrings()
output connectionStrings object = {
primary: {
readWrite: connectionStrings.connectionStrings[0].connectionString
readOnly: connectionStrings.connectionStrings[1].connectionString
}
secondary: {
readWrite: connectionStrings.connectionStrings[2].connectionString
readOnly: connectionStrings.connectionStrings[3].connectionString
}
}
Warning
이 Bicep 템플릿은 Bicep에 대한 Linter 경고를 트리거합니다. 이상적으로 프로덕션 Bicep 템플릿은 비밀을 출력하지 않아야 합니다. 이 샘플은 의도적으로 이 linter 경고를 억제하지 않습니다. 자세한 내용은 linter 규칙을 참조 하세요. 출력에 비밀이 포함되어서는 안 됩니다.
관련 콘텐츠