Hämta primära, sekundära nycklar, läs- eller skrivnycklar i Azure Cosmos DB
Artikel
GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord
Primära/sekundära nycklar ger åtkomst till alla administrativa resurser för databaskontot. Primära/sekundära nycklar:
Ge åtkomst till konton, databaser, användare och behörigheter.
Det går inte att använda för att ge detaljerad åtkomst till containrar och dokument.
Skapas när ett konto skapas.
Kan återskapas när som helst.
Viktigt!
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Det autentiseringsflöde som beskrivs i den här proceduren kräver mycket stort förtroende för programmet och medför risker som inte finns i andra flöden. Du bör bara använda det här flödet när andra säkrare flöden, till exempel hanterade identiteter, inte är livskraftiga.
För Azure Cosmos DB är Microsoft Entra-autentisering den säkraste autentiseringsmekanismen som är tillgänglig. Läs lämplig säkerhetsguide för ditt API:
Varje konto består av två nycklar: en primärnyckel och en sekundär nyckel. Syftet med dubbla nycklar är att du ska kunna återskapa eller rulla nycklar, vilket ger kontinuerlig åtkomst till ditt konto och dina data.
Primära/sekundära nycklar finns i två versioner: skrivskyddad och skrivskyddad. Skrivskyddade nycklar tillåter endast läsåtgärder för kontot. De ger inte åtkomst till läsbehörighetsresurser.
Förutsättningar
Ett befintligt Azure Cosmos DB-konto
Hämta primärnyckeln
Primärnyckeln kan vanligtvis finnas med hjälp av Azure Portal eller automatisering.
I det här exemplet matar Bicep-mallen ut alla autentiseringsuppgifter för ett befintligt Azure Cosmos DB-konto.
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
}
}
Varning
Den här Bicep-mallen utlöser en lintervarning för Bicep. Helst bör Bicep-mallar för produktion inte mata ut hemligheter. Det här exemplet undertrycker inte avsiktligt den här lintervarningen. Mer information finns i linterregel – utdata bör inte innehålla hemligheter.