Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A szerepköralapú hozzáférés-vezérlés az Azure-beli erőforrásokhoz való hozzáférés kezelésére szolgáló módszer. Ez a módszer azon meghatározott identitásokon alapul, amelyek szerepkörökhöz vannak rendelve, amelyek egy vagy több erőforráshoz való hozzáférésük szintjét kezelik. A szerepköralapú hozzáférés-vezérlés rugalmas, részletes hozzáférés-kezelési rendszert biztosít, amely biztosítja, hogy az identitások csak a legkevésbé emelt szintű hozzáféréssel rendelkezzenek a feladatuk elvégzéséhez.
További információ: szerepköralapú hozzáférés-vezérlés.
Előfeltételek
Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egy fiókot ingyenesen.
Egy meglévő Azure Cosmos DB NoSQL-fiók.
Egy vagy több meglévő identitás a Microsoft Entra-azonosítóban.
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: Az Azure Cloud Shell használatának első lépései.
Ha a CLI referencia parancsokat helyben szeretnéd futtatni, telepítsd az Azure CLI-t. Ha Windows vagy macOS rendszeren fut, fontolja meg az Azure CLI-t egy Docker-konténerben futtatni. További információkért lásd: Az Azure CLI használata Docker-konténerben.
Ha egy helyileg telepített verziót használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. Az azonosítási folyamat befejezéséhez kövesse a terminálján megjelenő lépéseket. További bejelentkezési lehetőségekért lásd: Hitelesítés az Azure-ba az Azure CLI használatával.
Amikor megjelenik a felszólítás, az első használatkor telepítse az Azure CLI bővítményt. További információ a bővítményekről: Bővítmények használata és kezelése az Azure CLI-vel.
Futtasd a az version parancsot, hogy megtudd a telepített verziót és függő könyvtárakat. A legújabb verzióra való frissítéshez futtassa a az upgrade parancsot.
- Ha az Azure PowerShell helyi használatát választja:
- Telepítse az Az PowerShell-modul legújabb verzióját.
- Csatlakozzon az Azure-fiókjához a Connect-AzAccount parancsmag használatával.
- Ha az Azure Cloud Shell használata mellett dönt:
- További információkért tekintse meg a Azure Cloud Shell áttekintését.
Kulcsalapú hitelesítés letiltása
A kulcsalapú engedélyezés letiltása megakadályozza, hogy a fiók a biztonságosabb Microsoft Entra ID hitelesítési módszer nélkül legyen használatban. Ez az eljárás egy olyan lépés, amelyet biztonságos számítási feladatokban lévő új fiókokon kell végrehajtani. Másik lehetőségként hajtsa végre ezt az eljárást egy biztonságos számítási feladatmintára migrált meglévő fiókokon.
Először tiltsa le a kulcsalapú hitelesítést a meglévő fiókjában, hogy az alkalmazásoknak Microsoft Entra-azonosítós hitelesítést kelljen használniuk. A meglévő fiók módosítására az resource update használható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
Először hozzon létre egy új fiókot, amely letiltotta a kulcsalapú hitelesítést, így az alkalmazásoknak Microsoft Entra-hitelesítést kell használniuk.
Hozzon létre egy új Bicep-fájlt az új fiók telepítéséhez a kulcsalapú hitelesítés letiltásával. Nevezze el a deploy-new-account.bicep fájlt.
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 } }A Bicep-fájl üzembe helyezésére használható
az deployment group createaz új fiókkal.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --template-file deploy-new-account.bicep
Először tiltsa le a kulcsalapú hitelesítést a meglévő fiókjában, hogy az alkalmazásoknak Microsoft Entra-hitelesítést kelljen használniuk. A meglévő fiókot Get-AzResource olvasásra és Set-AzResource frissítésre kell használni.
$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
Ezekkel a lépésekkel létrehozhat egy új Azure Cosmos DB for NoSQL-fiókot, amelynek kulcsalapú hitelesítése le van tiltva, így az alkalmazások csak a Microsoft Entra-hitelesítés használatához szükségesek.
Új Azure Cosmos DB for NoSQL-fiók beállításakor navigáljon a(z) fióklétrehozás Biztonság részéhez.
Ezután válassza a Kulcsalapú hitelesítésletiltása lehetőséget.
Fontos
Az Azure Cosmos DB-fiók módosításához legalább engedéllyel Microsoft.DocumentDb/databaseAccounts/*/write rendelkező Azure-szerepkör szükséges. További információkért tekintse meg az Azure Cosmos DB engedélyeit.
Ellenőrizze, hogy a kulcsalapú hitelesítés le van-e tiltva
A kulcsalapú hozzáférés letiltásának ellenőrzéséhez próbálja meg az Azure SDK használatával csatlakozni az Azure Cosmos DB for NoSQL-hez egy erőforrás-tulajdonosi jelszó hitelesítő adataival (ROPC). Ennek a kísérletnek sikertelennek kell lennie. Ha szükséges, itt a gyakori programozási nyelvekhez tartozó kódmintákat talál.
using Microsoft.Azure.Cosmos;
string connectionString = "AccountEndpoint=<nosql-endpoint>;AccountKey=<key>;";
CosmosClient client = new(connectionString);
const { CosmosClient } = require('@azure/cosmos');
const connectionString = 'AccountEndpoint=<nosql-endpoint>;AccountKey=<key>;';
const client = new CosmosClient(connectionString);
import { CosmosClient } from '@azure/cosmos'
let connectionString: string = 'AccountEndpoint=<nosql-endpoint>;AccountKey=<key>;';
const client: CosmosClient = new CosmosClient(connectionString);
from azure.cosmos import CosmosClient
connection_string = "AccountEndpoint=<nosql-endpoint>;AccountKey=<key>;"
client = CosmosClient(connection_string)
package main
import (
"github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos"
)
const connectionString = "AccountEndpoint=<nosql-endpoint>;AccountKey=<key>;"
func main() {
client, _ := azcosmos.NewClientFromConnectionString(connectionString, nil)
}
import com.azure.cosmos.CosmosClient;
import com.azure.cosmos.CosmosClientBuilder;
public class NoSQL{
public static void main(String[] args){
CosmosClient client = new CosmosClientBuilder()
.endpoint("<nosql-endpoint>")
.key("<key>")
.buildClient();
}
}
use azure_data_cosmos::CosmosClient;
fn main() {
let client = CosmosClient::new_with_access_key(
"<account-endpoint>",
"<account-key>",
None,
).unwrap();
let container = client.database_client("<database-name>").container_client("<container-name>");
let response = container.read_item("<partition-key>", "<item-id>", None);
tokio::runtime::Runtime::new().unwrap().block_on(response).unwrap();
}
Szerepköralapú hozzáférés biztosítása az irányítósíkhoz
A vezérlősík-hozzáférés azt jelenti, hogy az Azure-szolgáltatások erőforrásait az adatok kezelése nélkül kezelheti. Az Azure Cosmos DB vezérlősík-hozzáférése például magában foglalhatja a következőket:
- Az összes fiók és erőforrás metaadatainak olvasása
- Fiókkulcsok és kapcsolati sztringek olvasása és újragenerálása
- Fiók biztonsági mentésének és visszaállításának végrehajtása
- Adatátviteli feladatok indítása és nyomon követése
- Adatbázisok és tárolók kezelése
- Fióktulajdonságok módosítása
Fontos
Az Azure Cosmos DB-ben vezérlősík-hozzáférésre van szükség a natív adatsík szerepköralapú hozzáférés-vezérlési definícióinak és hozzárendeléseinek kezeléséhez. Mivel az Azure Cosmos DB adatsíkjának szerepköralapú hozzáférés-vezérlési mechanizmusa natív, vezérlősík-hozzáférésre van szükség a definíciók és hozzárendelések létrehozásához és erőforrásokként való tárolásához egy Azure Cosmos DB-fiókban.
Először elő kell készítenie egy szerepkördefiníciót egy listával actions , amely hozzáférést biztosít a fiókerőforrások kezeléséhez az Azure Cosmos DB-ben. Ebben az útmutatóban egy beépített és egyéni szerepkört készít elő. Ezután rendelje hozzá az újonnan definiált szerepköröket egy identitáshoz, hogy az alkalmazások hozzáférhessenek az Azure Cosmos DB erőforrásaihoz.
Listázhatja az Azure Cosmos DB-fiókhoz társított összes szerepkördefiníciót a használatával
az role definition list.az role definition list \ --name "Cosmos DB Operator"Tekintse át a kimenetet, és keresse meg a Cosmos DB-operátor nevű szerepkördefiníciót. A kimenet a tulajdonság szerepkördefiníciójának egyedi azonosítóját
idtartalmazza. Jegyezze fel ezt az értéket az útmutató későbbi részében, a hozzárendelési lépésben használni kívánt módon.[ { "assignableScopes": [ "/" ], "description": "Lets you manage Azure Cosmos DB accounts, but not access data in them. Prevents access to account keys and connection strings.", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleDefinitions/230815da-be43-4aae-9cb4-875f7bd000aa", "name": "230815da-be43-4aae-9cb4-875f7bd000aa", "permissions": [ { "actions": [ "Microsoft.DocumentDb/databaseAccounts/*", "Microsoft.Insights/alertRules/*", "Microsoft.Authorization/*/read", "Microsoft.ResourceHealth/availabilityStatuses/read", "Microsoft.Resources/deployments/*", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Support/*", "Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action" ], "condition": null, "conditionVersion": null, "dataActions": [], "notActions": [ "Microsoft.DocumentDB/databaseAccounts/dataTransferJobs/*", "Microsoft.DocumentDB/databaseAccounts/readonlyKeys/*", "Microsoft.DocumentDB/databaseAccounts/regenerateKey/*", "Microsoft.DocumentDB/databaseAccounts/listKeys/*", "Microsoft.DocumentDB/databaseAccounts/listConnectionStrings/*", "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/delete", "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/delete", "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/delete", "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/delete" ], "notDataActions": [] } ], "roleName": "Cosmos DB Operator", "roleType": "BuiltInRole", "type": "Microsoft.Authorization/roleDefinitions", } ]Megjegyzés:
Ebben a példában a
idérték a következő lenne:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleDefinitions/230815da-be43-4aae-9cb4-875f7bd000aa. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától. Az azonosító (230815da-be43-4aae-9cb4-875f7bd000aa) azonban globálisan egyedi az Azure-beli szerepkör-definíciókban.Az aktuális erőforráscsoport metaadatainak lekérésére használható
az group show.az group show \ --name "<name-of-existing-resource-group>"Figyelje meg az előző parancs kimenetét. Jegyezze fel az
iderőforráscsoport tulajdonságának értékét, ahogyan azt a következő lépésben használni kell.{ "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example", "location": "westus", "name": "msdocs-identity-example", "type": "Microsoft.Resources/resourceGroups" }Megjegyzés:
Ebben a példában a
idérték a következő lenne:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától. Ez a karakterlánc a kimeneti csonkolt példája.Hozzon létre egyrole-definition.jsonnevű új JSON-fájlt . A fájlban hozza létre ezt az erőforrásdefiníciót, amely megadja az itt felsorolt értékeket.
AssignableScopesA listához adja hozzá azidelőző lépésben rögzített erőforráscsoport tulajdonságát.{ "Name": "Azure Cosmos DB Control Plane Owner", "IsCustom": true, "Description": "Can perform all control plane actions for an Azure Cosmos DB account.", "Actions": [ "Microsoft.DocumentDb/*" ], "AssignableScopes": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example" ] }Megjegyzés:
Ez a példa az
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-exampleelőző lépésben rögzített értéket használja. A tényleges erőforrás-azonosító eltérő lehet.Hozzon létre egy új szerepkördefiníciót a következő használatával
az role definition create: . Használja a role-definition.json fájlt az--role-definitionargumentum bemeneteként.az role definition create \ --role-definition role-definition.jsonTekintse át a definíciólétrehozás parancs kimenetét. A kimenet a tulajdonság szerepkördefiníciójának egyedi azonosítóját
idtartalmazza. Jegyezze fel ezt az értéket az útmutató későbbi részében, a hozzárendelési lépésben használni kívánt módon.{ "assignableScopes": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example" ], "description": "Can perform all control plane actions for an Azure Cosmos DB account.", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.Authorization/roleDefinitions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1", "name": "e4e4e4e4-ffff-aaaa-bbbb-c5c5c5c5c5c5", "permissions": [ { "actions": [ "Microsoft.DocumentDb/*" ] } ], "roleName": "Azure Cosmos DB Control Plane Owner", "roleType": "CustomRole" }Megjegyzés:
Ebben a példában a
idérték a következő lenne:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.Authorization/roleDefinitions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától. Ez a példa az üzembe helyezésből származó tipikus JSON-kimenet egy részhalmaza az egyértelműség kedvéért.Az aktuális erőforráscsoport metaadatainak újbóli lekérésére használható
az group show.az group show \ --name "<name-of-existing-resource-group>"Figyelje meg az előző parancs kimenetét. Jegyezze fel az
iderőforráscsoport tulajdonságának értékét, ahogyan azt a következő lépésben használni kell.{ "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example", "location": "westus", "name": "msdocs-identity-example", "type": "Microsoft.Resources/resourceGroups" }Megjegyzés:
Ebben a példában a
idérték a következő lenne:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától. Ez a karakterlánc a kimeneti csonkolt példája.Az új szerepkör hozzárendelése a következővel
az role assignment create: . Használja az erőforráscsoport azonosítóját a--scopeargumentumhoz, a szerepkör azonosítóját a-roleargumentumhoz, és az identitás egyedi azonosítóját a--assigneeargumentumhoz.az role assignment create \ --assignee "<your-principal-identifier>" \ --role "subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.Authorization/roleDefinitions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1" \ --scope "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example"Megjegyzés:
Ebben a példaparancsban a
scopeértékét az előző lépés példájában szereplő fiktív példára,/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example-re állították be. Az erőforráscsoport azonosítója eltér a példától. Aroleis beállították a fiktív/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.Authorization/roleDefinitions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1. A szerepkör-azonosító ismét eltérő lesz.Figyelje meg a parancs kimenetét. A kimenet egy egyedi azonosítót tartalmaz a tulajdonság hozzárendeléséhez
id.{ "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.Authorization/roleAssignments/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1", "name": "ffffffff-5555-6666-7777-aaaaaaaaaaaa", "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "resourceGroup": "msdocs-identity-example", "roleDefinitionId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.Authorization/roleDefinitions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1", "scope": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example", "type": "Microsoft.Authorization/roleAssignments" }Megjegyzés:
Ebben a példában a
idtulajdonság/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.Authorization/roleAssignments/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1, ami egy másik fiktív példa.Ismételje meg ezeket a lépéseket, hogy hozzáférést biztosítson a fiókhoz bármely más identitásból, amelyet használni szeretne.
Jótanács
Ezeket a lépéseket tetszőleges számú identitás esetében megismételheti. Ezek a lépések általában legalább ismétlődnek, hogy a fejlesztők hozzáférhessenek egy fiókhoz az emberi identitásuk használatával, és hogy az alkalmazások egy felügyelt identitással férhessenek hozzá az adatokhoz.
Listázhatja az Azure Cosmos DB-fiókhoz társított összes szerepkördefiníciót a használatával
az role definition list.az role definition list \ --name "Cosmos DB Operator"Tekintse át a kimenetet, és keresse meg a Cosmos DB-operátor nevű szerepkördefiníciót. A kimenet a tulajdonság szerepkördefiníciójának egyedi azonosítóját
idtartalmazza. Jegyezze fel ezt az értéket az útmutató későbbi részében, a hozzárendelési lépésben használni kívánt módon.[ { "assignableScopes": [ "/" ], "description": "Lets you manage Azure Cosmos DB accounts, but not access data in them. Prevents access to account keys and connection strings.", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleDefinitions/230815da-be43-4aae-9cb4-875f7bd000aa", "name": "230815da-be43-4aae-9cb4-875f7bd000aa", "permissions": [ { "actions": [ "Microsoft.DocumentDb/databaseAccounts/*", "Microsoft.Insights/alertRules/*", "Microsoft.Authorization/*/read", "Microsoft.ResourceHealth/availabilityStatuses/read", "Microsoft.Resources/deployments/*", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Support/*", "Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action" ], "condition": null, "conditionVersion": null, "dataActions": [], "notActions": [ "Microsoft.DocumentDB/databaseAccounts/dataTransferJobs/*", "Microsoft.DocumentDB/databaseAccounts/readonlyKeys/*", "Microsoft.DocumentDB/databaseAccounts/regenerateKey/*", "Microsoft.DocumentDB/databaseAccounts/listKeys/*", "Microsoft.DocumentDB/databaseAccounts/listConnectionStrings/*", "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/delete", "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/delete", "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/delete", "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/delete" ], "notDataActions": [] } ], "roleName": "Cosmos DB Operator", "roleType": "BuiltInRole", "type": "Microsoft.Authorization/roleDefinitions", } ]Megjegyzés:
Ebben a példában a
idérték a következő lenne:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleDefinitions/230815da-be43-4aae-9cb4-875f7bd000aa. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától. Az azonosító (230815da-be43-4aae-9cb4-875f7bd000aa) azonban globálisan egyedi az Azure-beli szerepkör-definíciókban.Hozzon létre egy új Bicep-fájlt a szerepkördefiníció definiálásához. Nevezze el a fájlt control-plane-role-definition.bicep néven. Adja hozzá ezeket
actionsa definícióhoz:Description Microsoft.DocumentDb/*Engedélyezi az összes lehetséges műveletet. metadata description = 'Create RBAC definition for control plane access to Azure Cosmos DB.' @description('Name of the role definition.') param roleDefinitionName string = 'Azure Cosmos DB Control Plane Owner' @description('Description of the role definition.') param roleDefinitionDescription string = 'Can perform all control plane actions for an Azure Cosmos DB account.' resource definition 'Microsoft.Authorization/roleDefinitions@2022-04-01' = { name: guid(subscription().id, resourceGroup().id, roleDefinitionName) scope: resourceGroup() properties: { roleName: roleDefinitionName description: roleDefinitionDescription type: 'CustomRole' permissions: [ { actions: [ 'Microsoft.DocumentDb/*' ] } ] assignableScopes: [ resourceGroup().id ] } } output definitionId string = definition.idA Bicep sablon üzembe helyezése
az deployment group createsegítségével. Adja meg a Bicep-sablon és az Azure-erőforráscsoport nevét.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --template-file control-plane-role-definition.bicepTekintse át az üzembe helyezés kimenetét. A kimenet a tulajdonság szerepkördefiníciójának egyedi azonosítóját
properties.outputs.definitionId.valuetartalmazza. Jegyezze fel ezt az értéket az útmutató későbbi részében, a hozzárendelési lépésben használni kívánt módon.{ "properties": { "outputs": { "definitionId": { "type": "String", "value": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.Authorization/roleDefinitions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1" } } } }Megjegyzés:
Ebben a példában a
idérték a következő lenne:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.Authorization/roleDefinitions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától. Ez a példa az üzembe helyezésből származó tipikus JSON-kimenet egy részhalmaza az egyértelműség kedvéért.Hozzon létre egy új Bicep-fájlt a szerepkör-hozzárendelés definiálásához. Nevezze el a fájlt vezérlő-sík-szerepkiosztás.bicep.
metadata description = 'Assign RBAC role for control plane access to Azure Cosmos DB.' @description('Id of the role definition to assign to the targeted principal in the context of the account.') param roleDefinitionId string @description('Id of the identity/principal to assign this role in the context of the account.') param identityId string resource assignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = { name: guid(subscription().id, resourceGroup().id, roleDefinitionId, identityId) scope: resourceGroup() properties: { roleDefinitionId: roleDefinitionId principalId: identityId } }Hozzon létre egy új Bicep-paraméterfájlt control-plane-role-assignment néven.
bicepparamEbben a paraméterfájlban; rendelje hozzá a korábban rögzített szerepkördefiníció-azonosítókat aroleDefinitionIdparaméterhez, valamint az identitás egyedi azonosítóját aidentityIdparaméterhez.using './control-plane-role-assignment.bicep' param roleDefinitionId = '<id-of-new-role-definition>' param identityId = '<id-of-existing-identity>'Bicep-sablont helyezzen üzembe a következővel:
az deployment group create.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --parameters control-plane-role-assignment.bicepparam \ --template-file control-plane-role-assignment.bicepIsmételje meg ezeket a lépéseket, hogy hozzáférést biztosítson a fiókhoz bármely más identitásból, amelyet használni szeretne.
Jótanács
Ezeket a lépéseket tetszőleges számú identitás esetében megismételheti. Ezek a lépések általában legalább ismétlődnek, hogy a fejlesztők hozzáférhessenek egy fiókhoz az emberi identitásuk használatával, és hogy az alkalmazások egy felügyelt identitással férhessenek hozzá az adatokhoz.
Jelentkezzen be az Azure Portalra (https://portal.azure.com).
Adja meg az erőforráscsoportot a globális keresősávon.
A Szolgáltatások területen válassza ki az Erőforráscsoportokat.
Az Erőforráscsoportok panelen válassza ki a meglévő erőforráscsoportot.
Megjegyzés:
Ez a példa képernyőképe tartalmazza az
msdocs-identity-exampleerőforráscsoportot. A tényleges erőforráscsoport neve eltérő lehet.Az erőforráscsoport paneljén válassza a Hozzáférés-vezérlés (IAM) lehetőséget a szolgáltatás menüjében.
A Hozzáférés-vezérlés (IAM) panelen válassza a Szerepkörök lehetőséget.
A Szerepkörök szakaszban használja a Cosmos DB keresőkifejezést , és keresse meg a Cosmos DB-operátor szerepkördefinícióját. Ezután válassza ki a definícióhoz társított Nézet lehetőséget.
A Cosmos DB-operátor szerepkördefiníció párbeszédpanelén figyelje meg a szerepkördefiníció részeként hozzárendelt műveleteket.
Zárja be a Cosmos DB Operátor szerepkördefiníció párbeszédpanelt.
A Hozzáférés-vezérlés (IAM) panelen válassza a Hozzáadás lehetőséget. Ezután válassza az Egyéni szerepkör hozzáadása lehetőséget.
Az Alapszintű beállítások panelen konfigurálja a következő beállításokat, majd válassza a Tovább elemet:
Érték Egyéni szerepkör neve Azure Cosmos DB Control Plane OwnerLeírás Can perform all control plane actions for an Azure Cosmos DB account.Alapterv engedélyei Kezdés az alapoktól
Az Engedélyek panelen válassza az Engedélyek hozzáadása lehetőséget. Ezután keressen rá
DocumentDBaz engedélyek párbeszédpanelen. Végül válassza a Microsoft.DocumentDB lehetőséget.
Az engedélyek párbeszédpanelen válassza ki az összes műveletet
Microsoft.DocumentDB. Ezután válassza a Hozzáadás lehetőséget a *Engedélyek panelre való visszatéréshez.
Az Engedélyek panelen tekintse meg az engedélyek listáját. Ezután válassza a Véleményezés + létrehozás lehetőséget.
A Véleményezés + létrehozás panelen tekintse át az új szerepkördefinícióhoz megadott beállításokat. Végül válassza a Létrehozás lehetőséget.
Várja meg, amíg a portál befejezi a szerepkördefiníció létrehozását.
A Hozzáférés-vezérlés (IAM) panelen válassza a Hozzáadás , majd a Szerepkör-hozzárendelés hozzáadása lehetőséget.
A Szerepkör panelen keresse meg
Azure Cosmos DB, majd válassza ki az útmutatóban korábban létrehozott Azure Cosmos DB vezérlősík-tulajdonosi szerepkört. Ezután válassza a Tovább gombot.
Jótanács
A szerepkörök listáját szűrheti úgy is, hogy csak egyéni szerepköröket tartalmazzon.
A Tagok panelen válassza a Tagok kijelölése lehetőséget. A tagok párbeszédpanelen válassza ki azt az identitást, amelyet meg szeretne adni az Azure Cosmos DB-fiókhoz, majd a Kiválasztás lehetőséggel erősítse meg a választását.
Megjegyzés:
Ez a képernyőkép egy "Kai Carter" nevű példafelhasználót mutat be az alábbi főösszeggel:
kai@adventure-works.com.A Tagok panelen tekintse át a kijelölt tagokat, majd válassza a Véleményezés + hozzárendelés lehetőséget.
A Véleményezés + hozzárendelés panelen tekintse át az új szerepkör-hozzárendelés megadott beállításait. Végül válassza a Véleményezés + hozzárendelés lehetőséget.
Várja meg, amíg a portál befejezi a szerepkör-hozzárendelés létrehozását.
Az Azure Cosmos DB-fiókhoz társított szerepkördefiníciók felsorolására használható
Get-AzRoleDefinition.$parameters = @{ Name = "Cosmos DB Operator" } Get-AzRoleDefinition @parametersTekintse át a kimenetet, és keresse meg a Cosmos DB beépített adatszolgáltató nevű szerepkördefiníciót. A kimenet a tulajdonság szerepkördefiníciójának egyedi azonosítóját
Idtartalmazza. Jegyezze fel ezt az értéket az útmutató későbbi részében, a hozzárendelési lépésben használni kívánt módon.Name : Cosmos DB Operator Id : 230815da-be43-4aae-9cb4-875f7bd000aa IsCustom : False Description : Lets you manage Azure Cosmos DB accounts, but not access data in them. Prevents access to account keys and connection strings. Actions : {Microsoft.DocumentDb/databaseAccounts/*, Microsoft.Insights/alertRules/*, Microsoft.Authorization/*/read, Microsoft.ResourceHealth/availabilityStatuses/read…} NotActions : {Microsoft.DocumentDB/databaseAccounts/dataTransferJobs/*, Microsoft.DocumentDB/databaseAccounts/readonlyKeys/*, Microsoft.DocumentDB/databaseAccounts/regenerateKey/*, Microsoft.DocumentDB/databaseAccounts/listKeys/*…} DataActions : {} NotDataActions : {} AssignableScopes : {/}Megjegyzés:
Ebben a példában a
Idérték a következő lenne:230815da-be43-4aae-9cb4-875f7bd000aa. Az azonosító globálisan egyedi az Azure-beli szerepkör-definíciókban.Az aktuális erőforráscsoport metaadatainak lekérésére használható
Get-AzResourceGroup.$parameters = @{ Name = "<name-of-existing-resource-group>" } Get-AzResourceGroup @parametersFigyelje meg az előző parancs kimenetét. Jegyezze fel az
ResourceIderőforráscsoport tulajdonságának értékét, ahogyan azt a következő lépésben használni kell.ResourceGroupName : msdocs-identity-example Location : westus ProvisioningState : Succeeded ResourceId : /subscriptions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/resourcegroups/msdocs-identity-exampleMegjegyzés:
Ebben a példában a
ResourceIdérték a következő lenne:/subscriptions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/resourcegroups/msdocs-identity-example. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától. Ez a karakterlánc a tipikus kimenet lerövidített példája.Először importálja a modult
Az.Resources. Ezután hozzon létre egy újMicrosoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinitionobjektumot. Az objektumban hozza létre ezt az erőforrásdefiníciót, amely megadja az itt felsorolt értékeket.AssignableScopesA listához adja hozzá azResourceIdelőző lépésben rögzített erőforráscsoport tulajdonságát. Végül használja a szerepkör-definíciós objektumot a-Roleparaméter bemeneteként aNew-AzRoleDefinitionszámára.Import-Module Az.Resources $parameters = @{ TypeName = "Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition" Property = @{ Name = "Azure Cosmos DB Control Plane Owner" Description = "Can perform all control plane actions for an Azure Cosmos DB account." IsCustom = $true Actions = @( "Microsoft.DocumentDb/*" ) AssignableScopes = @( "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example" ) } } $role = New-Object @parameters New-AzRoleDefinition -Role $roleMegjegyzés:
Ez a példa az
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-exampleelőző lépésben rögzített értéket használja. A tényleges erőforrás-azonosító eltérő lehet.Tekintse át a definíciólétrehozás parancs kimenetét. A kimenet a tulajdonság szerepkördefiníciójának egyedi azonosítóját
Nametartalmazza. Jegyezze fel ezt az értéket az útmutató későbbi részében, a hozzárendelési lépésben használni kívánt módon.Name : Azure Cosmos DB Control Plane Owner Id : e4e4e4e4-ffff-aaaa-bbbb-c5c5c5c5c5c5 IsCustom : True Description : Can perform all control plane actions for an Azure Cosmos DB account. Actions : {Microsoft.DocumentDb/*} AssignableScopes : {/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example}Megjegyzés:
Ebben a példában a
Nameérték a következő lenne:Azure Cosmos DB Control Plane Owner. Ez a példa az üzembe helyezés tipikus kimenetének egy részhalmaza az egyértelműség kedvéért.Az új szerepkör hozzárendelése a következővel
New-AzRoleAssignment: . Használja a paraméter szerepkörnevétRoleDefinitionNameés az identitás egyedi azonosítóját aObjectIdparaméterhez.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" ObjectId = "<your-principal-identifier>" RoleDefinitionName = "Azure Cosmos DB Control Plane Owner" } New-AzRoleAssignment @parametersFigyelje meg a parancs kimenetét. A kimenet egy egyedi azonosítót tartalmaz a tulajdonság hozzárendeléséhez
RoleAssignmentId.RoleAssignmentName : ffffffff-5555-6666-7777-aaaaaaaaaaaa RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.Authorization/roleAssignments/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example DisplayName : Kai Carter SignInName : <kai@adventure-works.com> RoleDefinitionName : Azure Cosmos DB Control Plane Owner RoleDefinitionId : e4e4e4e4-ffff-aaaa-bbbb-c5c5c5c5c5c5Megjegyzés:
Ebben a példában a
RoleAssignmentIdtulajdonság/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.Authorization/roleAssignments/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1, ami egy másik fiktív példa. Ez a példa az üzembe helyezés tipikus kimenetének egy részhalmaza az egyértelműség kedvéért.Ismételje meg ezeket a lépéseket, hogy hozzáférést biztosítson a fiókhoz bármely más identitásból, amelyet használni szeretne.
Jótanács
Ezeket a lépéseket tetszőleges számú identitás esetében megismételheti. Ezek a lépések általában legalább ismétlődnek, hogy a fejlesztők hozzáférhessenek egy fiókhoz az emberi identitásuk használatával, és hogy az alkalmazások egy felügyelt identitással férhessenek hozzá az adatokhoz.
Fontos
A szerepkördefiníció hozzárendeléséhez már rendelkeznie kell annak az identitásnak az egyedi azonosítójával, amelyhez szerepköralapú hozzáférés-vezérlési engedélyeket kíván adni.
Vezérlősík szerepköralapú hozzáférésének ellenőrzése kódban
Ellenőrizze, hogy helyesen adta-e meg a hozzáférést az alkalmazáskód és az Azure Management SDK használatával.
using Azure.Identity;
using Azure.ResourceManager;
DefaultAzureCredential credential = new();
ArmClient client = new(credential);
const { CosmosDBManagementClient } = require('@azure/arm-cosmosdb');
const { DefaultAzureCredential } = require('@azure/identity');
const subscriptionId = "<subscription-id>";
const credential = new DefaultAzureCredential();
const client = new CosmosDBManagementClient(credential, subscriptionId);
import { CosmosDBManagementClient } from '@azure/arm-cosmosdb';
import { TokenCredential, DefaultAzureCredential } from '@azure/identity';
let subscriptionId: string = "<subscription-id>";
let credential: TokenCredential = new DefaultAzureCredential();
const client: CosmosDBManagementClient = new CosmosDBManagementClient(credential, subscriptionId);
from azure.mgmt.cosmosdb import CosmosDBManagementClient
from azure.identity import DefaultAzureCredential
subscription_id = "<subscription-id>"
credential = DefaultAzureCredential()
client = CosmosDBManagementClient(credential=credential, subscription=subscription_id)
package main
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/cosmos/armcosmos"
)
const subscriptionId = "<subscription-id>"
func main() {
credential, _ := azidentity.NewDefaultAzureCredential(nil)
client, _ := armcosmos.NewDatabaseClient(subscriptionId, credential, nil)
}
package com.example;
import com.azure.core.management.profile.AzureProfile;
import com.azure.core.management.AzureEnvironment;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.cosmos.CosmosManager;
public class CosmosDB {
public static void main(String[] args) {
AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
.build();
CosmosManager manager = CosmosManager.authenticate(credential, profile);
}
}
Adatsík szerepköralapú hozzáférésének biztosítása
Az adatsík hozzáférés azt jelenti, hogy adatok olvasása és írása az Azure-szolgáltatásban elérhető anélkül, hogy hozzáférne a fiók erőforrásainak kezeléséhez. Az Azure Cosmos DB adatsík-hozzáférése például a következőket teheti lehetővé:
- Olvassa el a fiók- és erőforrás-metaadatokat.
- Elemek létrehozása, olvasása, frissítése, javítása és törlése
- NoSQL-lekérdezések végrehajtása
- Beolvasás egy tároló változáscsatornájából
- Tárolt eljárások végrehajtása
- Ütközések kezelése a konfliktusfolyamban
Először elő kell készítenie egy szerepkördefiníciót egy listával dataActions , amely hozzáférést biztosít az adatok olvasásához, lekérdezéséhez és kezeléséhez az Azure Cosmos DB for NoSQL-ben. Ebben az útmutatóban egy egyéni szerepkört készít elő. Ezután rendelje hozzá az újonnan definiált szerepkört egy identitáshoz, hogy az alkalmazások hozzáférhessenek az Adatokhoz az Azure Cosmos DB for NoSQL-ben.
Fontos
Egy meglévő adatsík szerepkördefiníciójának beszerzéséhez az alábbi vezérlősík-engedélyek szükségesek:
Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read
Új adatsík szerepkördefiníciójának létrehozásához a vezérlősík engedélyei szükségesek:
Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/readMicrosoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write
Új adatsík-szerepkör-hozzárendelés létrehozásához a vezérlősík engedélyei szükségesek:
Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/readMicrosoft.DocumentDB/databaseAccounts/sqlRoleAssignments/readMicrosoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write
Figyelmeztetés
Az Azure Cosmos DB for NoSQL natív szerepköralapú hozzáférés-vezérlése nem támogatja a tulajdonságot notDataActions . A nem engedélyezettként dataAction megadott műveletek automatikusan ki lesznek zárva.
Listázhatja az Azure Cosmos DB for NoSQL-fiókhoz társított szerepkördefiníciókat a használatával
az cosmosdb sql role definition list.az cosmosdb sql role definition list \ --resource-group "<name-of-existing-resource-group>" \ --account-name "<name-of-existing-nosql-account>"Hozzon létre egy role-definition.jsonnevű új JSON-fájlt, amely az egyéni szerepkör létrehozásához használatos. Ebben a fájlban hozzon létre egy erőforrásdefiníciót, amely megadja az itt felsorolt adatműveleteket:
Description Microsoft.DocumentDB/databaseAccounts/readMetadataKépes a fiókszintű metaadatok olvasására Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*Bármilyen tárolószintű adatműveletet végrehajthat Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*Bármilyen műveletet végrehajthat tárolókkal rendelkező elemeken { "RoleName": "Azure Cosmos DB for NoSQL Data Plane Owner", "Type": "CustomRole", "AssignableScopes": [ "/" ], "Permissions": [ { "DataActions": [ "Microsoft.DocumentDB/databaseAccounts/readMetadata", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*" ] } ] }Ezután használja a
az cosmosdb sql role definition createelemet a szerepkördefiníció létrehozásához. Használja a role-definition.json-t az--bodyargumentum bemeneteként.az cosmosdb sql role definition create \ --resource-group "<name-of-existing-resource-group>" \ --account-name "<name-of-existing-nosql-account>" \ --body "@role-definition.json"Tekintse át az előző parancs kimenetét. Keresse meg az imént létrehozott , a NOSQL-adatsík tulajdonosához készült Azure Cosmos DB nevű szerepkördefiníciót. A kimenet a tulajdonság szerepkördefiníciójának egyedi azonosítóját
idtartalmazza. Jegyezze fel ezt az értéket úgy, ahogyan azt a jelen útmutató későbbi, hozzárendelési lépésében használni kell:--role-definition-id{ "assignableScopes": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql" ], "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql/sqlRoleDefinitions/bbbbbbbb-1111-2222-3333-cccccccccccc", "name": "bbbbbbbb-1111-2222-3333-cccccccccccc", "permissions": [ { "dataActions": [ "Microsoft.DocumentDB/databaseAccounts/readMetadata", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*" ], "notDataActions": [] } ], "resourceGroup": "msdocs-identity-example", "roleName": "Azure Cosmos DB for NoSQL Data Plane Owner", "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions", "typePropertiesType": "CustomRole" }Megjegyzés:
Ebben a példában a
--role-definition-idérték a következő lenne:bbbbbbbb-1111-2222-3333-cccccccccccc. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától.Használja az előző lépésben kapott
id-t, és--scope-t úgy határozza meg, hogy eltávolít mindent a fiók neve után.Megjegyzés:
Ebben a példában a
--scopeérték a következő lenne:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától.Az új szerepkör hozzárendelése a következővel
az cosmosdb sql role assignment create: .
Használja a korábban rögzített szerepkördefiníció-azonosítókat az--role-definition-idargumentumhoz,
az identitás egyedi azonosítóját az--principal-idargumentumhoz,
végül pedig használja a fiók azonosítóját az--scopeargumentumhoz.az cosmosdb sql role assignment create \ --resource-group "<name-of-existing-resource-group>" \ --account-name "<name-of-existing-nosql-account>" \ --role-definition-id "<id-of-new-role-definition>" \ --principal-id "<id-of-existing-identity>" \ --scope "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql"Jótanács
Ha az adatsík szerepköralapú hozzáférés-vezérlését szeretné biztosítani a saját identitásának, az alábbi paranccsal szerezheti be az identitást:
az ad signed-in-user showTovábbi információért lásd
az ad signed-in-user.Jótanács
Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlés natív implementációjában a hatókör azoknak a fiókoknak az erőforrásainak részletességére vonatkozik, amelyekre engedélyt szeretne alkalmazni. A legmagasabb szinten az adatsíkhoz kapcsolódó szerepkör-alapú hozzáférés-vezérlés hozzárendelését a teljes fiókra helyezheti a lehető legszélesebb hatókör alkalmazásával. Ez a hatókör a fiókon belüli összes adatbázist és tárolót tartalmazza:
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/Az adatsík szerepkör-hozzárendelését egy adott adatbázisra is kiterjedheti:
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/<database-name>Végül hatókört adhat a hozzárendelésnek egyetlen tárolóra, a legrészletesebb hatókörre:
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/<database-name>/colls/<container-name>Sok esetben a relatív hatókört használhatja a teljes hatókör helyett. Ezzel a relatív hatókörrel például az adatsík szerepköralapú hozzáférés-vezérlési engedélyeit adhat egy adott adatbázishoz és tárolóhoz egy Azure CLI-parancsból:
/dbs/<database-name>/colls/<container-name>A relatív hatókör használatával univerzális hozzáférést is biztosíthat az összes adatbázishoz és tárolóhoz:
/Az Azure Cosmos DB for NoSQL-fiókhoz tartozó összes szerepkör-hozzárendelés listázásához használja a
az cosmosdb sql role assignment list. Tekintse át a kimenetet, és győződjön meg arról, hogy a szerepkör-hozzárendelés létrejött.az cosmosdb sql role assignment list \ --resource-group "<name-of-existing-resource-group>" \ --account-name "<name-of-existing-nosql-account>"
Listázhatja az Azure Cosmos DB for NoSQL-fiókhoz társított szerepkördefiníciókat a használatával
az cosmosdb sql role definition list.az cosmosdb sql role definition list \ --resource-group "<name-of-existing-resource-group>" \ --account-name "<name-of-existing-nosql-account>"Tekintse át a kimenetet, és keresse meg a Cosmos DB beépített adatszolgáltató nevű szerepkördefiníciót. A kimenet a tulajdonság szerepkördefiníciójának egyedi azonosítóját
idtartalmazza. Jegyezze fel ezt az értéket az útmutató későbbi részében, a hozzárendelési lépésben használni kívánt módon.[ ..., { "assignableScopes": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql" ], "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql/sqlRoleDefinitions/00000000-0000-0000-0000-000000000002", "name": "00000000-0000-0000-0000-000000000002", "permissions": [ { "dataActions": [ "Microsoft.DocumentDB/databaseAccounts/readMetadata", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*" ], "notDataActions": [] } ], "resourceGroup": "msdocs-identity-example", "roleName": "Cosmos DB Built-in Data Contributor", "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions", "typePropertiesType": "BuiltInRole" } ... ]Megjegyzés:
Ebben a példában a
idérték a következő lenne:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql/sqlRoleDefinitions/00000000-0000-0000-0000-000000000002. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától.Hozzon létre egy új Bicep-fájlt a szerepkördefiníció definiálásához. Adja a fájlnak a data-plane-role-definition.bicep nevet. Adja hozzá ezeket
dataActionsa definícióhoz:Description Microsoft.DocumentDB/databaseAccounts/readMetadataKépes a fiókszintű metaadatok olvasására Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*Bármilyen tárolószintű adatműveletet végrehajthat Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*Bármilyen műveletet végrehajthat tárolókkal rendelkező elemeken metadata description = 'Create RBAC definition for data plane access to Azure Cosmos DB for NoSQL.' @description('Name of the Azure Cosmos DB for NoSQL account.') param accountName string @description('Name of the role definition.') param roleDefinitionName string = 'Azure Cosmos DB for NoSQL Data Plane Owner' resource account 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' existing = { name: accountName } resource definition 'Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions@2024-05-15' = { name: guid(account.id, roleDefinitionName) parent: account properties: { roleName: roleDefinitionName type: 'CustomRole' assignableScopes: [ account.id ] permissions: [ { dataActions: [ 'Microsoft.DocumentDB/databaseAccounts/readMetadata' 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*' 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*' ] } ] } } output definitionId string = definition.idJótanács
Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlés natív implementációjában a hatókör azoknak a fiókoknak az erőforrásainak részletességére vonatkozik, amelyekre engedélyt szeretne alkalmazni. A legmagasabb szinten az adatsíkhoz kapcsolódó szerepkör-alapú hozzáférés-vezérlés hozzárendelését a teljes fiókra helyezheti a lehető legszélesebb hatókör alkalmazásával. Ez a hatókör a fiókon belüli összes adatbázist és tárolót tartalmazza:
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/Az adatsík szerepkör-hozzárendelését egy adott adatbázisra is kiterjedheti:
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/<database-name>Végül hatókört adhat a hozzárendelésnek egyetlen tárolóra, a legrészletesebb hatókörre:
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/<database-name>/colls/<container-name>Sok esetben a relatív hatókört használhatja a teljes hatókör helyett. Ezzel a relatív hatókörrel például az adatsík szerepköralapú hozzáférés-vezérlési engedélyeit adhat egy adott adatbázishoz és tárolóhoz egy Azure CLI-parancsból:
/dbs/<database-name>/colls/<container-name>A relatív hatókör használatával univerzális hozzáférést is biztosíthat az összes adatbázishoz és tárolóhoz:
/Hozzon létre egy új Bicep-paraméterfájlt data-plane-role-definition néven.
bicepparamEbben a paraméterfájlban rendelje hozzá a meglévő Azure Cosmos DB for NoSQL-fiók nevét aaccountNameparaméterhez.using './data-plane-role-definition.bicep' param accountName = '<name-of-existing-nosql-account>'A Bicep sablon üzembe helyezése
az deployment group createsegítségével.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --parameters data-plane-role-definition.bicepparam \ --template-file data-plane-role-definition.bicepHozzon létre egy új Bicep-fájlt a szerepkör-hozzárendelés definiálásához. Adja a fájlnak a data-plane-role-assignment.bicep nevet.
metadata description = 'Assign RBAC role for data plane access to Azure Cosmos DB for NoSQL.' @description('Name of the Azure Cosmos DB for NoSQL account.') param accountName string @description('Id of the role definition to assign to the targeted principal in the context of the account.') param roleDefinitionId string @description('Id of the identity/principal to assign this role in the context of the account.') param identityId string = deployer().objectId resource account 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' existing = { name: accountName } resource assignment 'Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments@2024-05-15' = { name: guid(roleDefinitionId, identityId, account.id) parent: account properties: { principalId: identityId roleDefinitionId: roleDefinitionId scope: account.id } } output assignmentId string = assignment.idHozzon létre egy új Bicep-paraméterfájlt data-plane-role-assignment néven.
bicepparamEbben a paraméterfájlban rendelje hozzá a meglévő Azure Cosmos DB for NoSQL-fiók nevét aaccountNameparaméterhez, a korábban rögzített szerepkördefiníció-azonosítókat aroleDefinitionIdparaméterhez, valamint az identitás egyedi azonosítóját aidentityIdparaméterhez.using './data-plane-role-assignment.bicep' param accountName = '<name-of-existing-nosql-account>' param roleDefinitionId = '<id-of-new-role-definition>' param identityId = '<id-of-existing-identity>'Jótanács
Ha az adatsík szerepköralapú hozzáférés-vezérlését szeretné biztosítani a saját identitásának, kihagyhatja a paramétert
identityId. A Bicep-sablon ezután a sablont üzembe helyező tag identitásának lekérésére szolgáldeployer().objectId. További információért lásddeployer.A Bicep sablon üzembe helyezése
az deployment group createsegítségével.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --parameters data-plane-role-assignment.bicepparam \ --template-file data-plane-role-assignment.bicepIsmételje meg ezeket a lépéseket, hogy hozzáférést biztosítson a fiókhoz bármely más identitásból, amelyet használni szeretne.
Jótanács
Ezeket a lépéseket tetszőleges számú identitás esetében megismételheti. Ezek a lépések általában legalább ismétlődnek, hogy a fejlesztők hozzáférhessenek egy fiókhoz az emberi identitásuk használatával. Ezeket a lépéseket meg is ismételheti, hogy az alkalmazások felügyelt identitással férhessenek hozzá az erőforrásokhoz.
Használja a
Get-AzCosmosDBSqlRoleDefinitiona szerepkördefiníciók listázására, amelyeket az Azure Cosmos DB for NoSQL-fiókhoz társított.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" AccountName = "<name-of-existing-nosql-account>" } Get-AzCosmosDBSqlRoleDefinition @parametersTekintse át a kimenetet, és keresse meg a Cosmos DB beépített adatszolgáltató nevű szerepkördefiníciót. A kimenet a tulajdonság szerepkördefiníciójának egyedi azonosítóját
Idtartalmazza. Jegyezze fel ezt az értéket az útmutató későbbi részében, a hozzárendelési lépésben használni kívánt módon.Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql/sqlRoleDefinitions/00000000-0000-0000-0000-000000000002 RoleName : Cosmos DB Built-in Data Contributor Type : BuiltInRole AssignableScopes : {/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccountsmsdocs-identity-example-nosql} Permissions.DataActions : {Microsoft.DocumentDB/databaseAccounts/readMetadata, Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*, Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*} Permissions.NotDataActions :Megjegyzés:
Ebben a példában a
Idérték a következő lenne:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql/sqlRoleDefinitions/00000000-0000-0000-0000-000000000002. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától. Az azonosító (00000000-0000-0000-0000-000000000002) azonban a fiók összes szerepkördefiníciójában egyedi.Hozzon létre egy új szerepkördefiníciót a következő használatával
New-AzCosmosDBSqlRoleDefinition: . A paraméterhezDataActionadja meg az itt felsorolt adatműveleteket:Description Microsoft.DocumentDB/databaseAccounts/readMetadataKépes a fiókszintű metaadatok olvasására Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*Bármilyen tárolószintű adatműveletet végrehajthat Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*Bármilyen műveletet végrehajthat tárolókkal rendelkező elemeken $parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" AccountName = "<name-of-existing-nosql-account>" RoleName = "Azure Cosmos DB for NoSQL Data Plane Owner" Type = "CustomRole" AssignableScope = @( "/" ) DataAction = @( "Microsoft.DocumentDB/databaseAccounts/readMetadata", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*" ) } New-AzCosmosDBSqlRoleDefinition @parametersJótanács
Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlés natív implementációjában a hatókör azoknak a fiókoknak az erőforrásainak részletességére vonatkozik, amelyekre engedélyt szeretne alkalmazni. A legmagasabb szinten az adatsíkhoz kapcsolódó szerepkör-alapú hozzáférés-vezérlés hozzárendelését a teljes fiókra helyezheti a lehető legszélesebb hatókör alkalmazásával. Ez a hatókör a fiókon belüli összes adatbázist és tárolót tartalmazza:
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/Az adatsík szerepkör-hozzárendelését egy adott adatbázisra is kiterjedheti:
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/<database-name>Végül hatókört adhat a hozzárendelésnek egyetlen tárolóra, a legrészletesebb hatókörre:
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/<database-name>/colls/<container-name>Sok esetben a relatív hatókört használhatja a teljes hatókör helyett. Ezzel a relatív hatókörrel például az adatsík szerepköralapú hozzáférés-vezérlési engedélyeit adhat egy adott adatbázishoz és tárolóhoz egy Azure CLI-parancsból:
/dbs/<database-name>/colls/<container-name>A relatív hatókör használatával univerzális hozzáférést is biztosíthat az összes adatbázishoz és tárolóhoz:
/Használja a
Get-AzCosmosDBSqlRoleDefinitiona szerepkördefiníciók listázására, amelyeket az Azure Cosmos DB for NoSQL-fiókhoz társított.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" AccountName = "<name-of-existing-nosql-account>" } Get-AzCosmosDBSqlRoleDefinition @parametersTekintse át az előző parancs kimenetét. Keresse meg az imént létrehozott , a NOSQL-adatsík tulajdonosához készült Azure Cosmos DB nevű szerepkördefiníciót. A kimenet a tulajdonság szerepkördefiníciójának egyedi azonosítóját
Idtartalmazza. Jegyezze fel ezt az értéket az útmutató későbbi részében, a hozzárendelési lépésben használni kívánt módon.Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql/sqlRoleDefinitions/bbbbbbbb-1111-2222-3333-cccccccccccc RoleName : Azure Cosmos DB for NoSQL Data Plane Owner Type : CustomRole AssignableScopes : {/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql} Permissions.DataActions : {Microsoft.DocumentDB/databaseAccounts/readMetadata, Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*, Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*} Permissions.NotDataActions :Megjegyzés:
Ebben a példában a
Idérték a következő lenne:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql/sqlRoleDefinitions/bbbbbbbb-1111-2222-3333-cccccccccccc. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától.A jelenlegi fiók metaadatainak lekérésére használható
Get-AzCosmosDBAccount.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" Name = "<name-of-existing-nosql-account>" } Get-AzCosmosDBAccount @parameters | Select -Property IdFigyelje meg az előző parancs kimenetét. Jegyezze fel a
Idfiók tulajdonságának értékét, ahogy azt a következő lépésben használni kell.Id -- /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosqlMegjegyzés:
Ebben a példában a
Idérték a következő lenne:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql. Ez a példa fiktív adatokat használ, és az azonosító eltér a példától.Az új szerepkör hozzárendelésére használható
New-AzCosmosDBSqlRoleAssignment. Használja a korábban rögzített szerepkördefiníció-azonosítókat aRoleDefinitionIdparaméterhez, valamint az identitás egyedi azonosítóját aPrincipalIdparaméterhez. Végül használja a fiók azonosítóját aScopeparaméterhez.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" AccountName = "<name-of-existing-nosql-account>" RoleDefinitionId = "<id-of-new-role-definition>" PrincipalId = "<id-of-existing-identity>" Scope = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-identity-example/providers/Microsoft.DocumentDB/databaseAccounts/msdocs-identity-example-nosql" } New-AzCosmosDBSqlRoleAssignment @parametersJótanács
Ha az adatsík szerepköralapú hozzáférés-vezérlését szeretné biztosítani a saját identitásának, az alábbi paranccsal szerezheti be az identitást:
Get-AzADUser -SignedIn | Format-List ` -Property Id, DisplayName, Mail, UserPrincipalNameTovábbi információért lásd
Get-AzADUser.Felsorolhatja az Azure Cosmos DB for NoSQL-fiók összes szerepkör-hozzárendelését a
Get-AzCosmosDBSqlRoleAssignmenthasználatával. Tekintse át a kimenetet, és győződjön meg arról, hogy a szerepkör-hozzárendelés létrejött.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" AccountName = "<name-of-existing-nosql-account>" } Get-AzCosmosDBSqlRoleAssignment @parameters
Figyelmeztetés
Az adatsík szerepköralapú hozzáférés-vezérlésének kezelése nem támogatott az Azure Portalon.
Adatsík szerepköralapú hozzáférésének ellenőrzése kódban
Ellenőrizze, hogy helyesen adta-e meg a hozzáférést az alkalmazáskód és az Azure SDK használatával.
using Azure.Core;
using Azure.Identity;
using Microsoft.Azure.Cosmos;
string endpoint = "<account-endpoint>";
TokenCredential credential = new DefaultAzureCredential();
CosmosClient client = new(endpoint, credential);
Container container = client.GetContainer("<database-name>", "<container-name>");
await container.ReadItemAsync<dynamic>("<item-id>", new PartitionKey("<partition-key>"));
const { CosmosClient } = require('@azure/cosmos');
const { DefaultAzureCredential } = require('@azure/identity');
const endpoint = '<account-endpoint>';
const credential = new DefaultAzureCredential();
const client = new CosmosClient({ endpoint, aadCredentials:credential});
const container = client.database('<database-name>').container('<container-name>');
await container.item('<item-id>', '<partition-key>').read<String>();
import { Container, CosmosClient, CosmosClientOptions } from '@azure/cosmos'
import { TokenCredential, DefaultAzureCredential } from '@azure/identity'
let endpoint: string = '<account-endpoint>';
let credential: TokenCredential = new DefaultAzureCredential();
let options: CosmosClientOptions = {
endpoint: endpoint,
aadCredentials: credential
};
const client: CosmosClient = new CosmosClient(options);
const container: Container = client.database('<database-name>').container('<container-name>');
await container.item('<item-id>', '<partition-key>').read<String>();
from azure.cosmos import CosmosClient
from azure.identity import DefaultAzureCredential
endpoint = "<account-endpoint>"
credential = DefaultAzureCredential()
client = CosmosClient(endpoint, credential=credential)
container = client.get_database_client("<database-name>").get_container_client("<container-name>")
container.read_item(
item="<item-id>",
partition_key="<partition-key>",
)
import (
"context"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos"
)
const endpoint = "<account-endpoint>"
func main() {
credential, _ := azidentity.NewDefaultAzureCredential(nil)
client, _ := azcosmos.NewClient(endpoint, credential, nil)
database, _ := client.NewDatabase("<database-name>")
container, _ := database.NewContainer("<container-name>")
_, err := container.ReadItem(context.TODO(), azcosmos.NewPartitionKeyString("<partition-key>"), "<item-id>", nil)
if err != nil {
panic(err)
}
}
import com.azure.cosmos.CosmosClient;
import com.azure.cosmos.CosmosClientBuilder;
import com.azure.cosmos.CosmosContainer;
import com.azure.cosmos.models.PartitionKey;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
public class NoSQL {
public static void main(String[] args) {
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
.build();
CosmosClient client = new CosmosClientBuilder()
.endpoint("<account-endpoint>")
.credential(credential)
.buildClient();
CosmosContainer container = client.getDatabase("<database-name>").getContainer("<container-name>");
container.readItem("<item-id>", new PartitionKey("<partition-key>"), Object.class);
}
}
use azure_data_cosmos::CosmosClient;
use azure_identity::DefaultAzureCredential;
fn main() {
let credential = DefaultAzureCredential::new().unwrap();
let client = CosmosClient::new("<account-endpoint>", credential, None).unwrap();
let container = client.database_client("<database-name>").container_client("<container-name>");
let response = container.read_item("<partition-key>", "<item-id>", None);
tokio::runtime::Runtime::new().unwrap().block_on(response).unwrap();
}
Kapcsolódó tartalom
- Az Azure Cosmos DB for NoSQL-fiók védelme
- Az Azure Cosmos DB for NoSQL áttekintése