Megosztás a következőn keresztül:


Szerepalapú hozzáférés-szabályozás konfigurálása Microsoft Entra ID segítségével Azure Cosmos DB fiókjához

A KÖVETKEZŐRE VONATKOZIK: NoSQL

Feljegyzés

Ez a cikk az Adatsík-műveletek szerepköralapú hozzáférés-vezérléséről szól az Azure Cosmos DB-ben. Ha felügyeletisík-műveleteket használ, tekintse meg a felügyeletisík-műveletekre alkalmazott szerepköralapú hozzáférés-vezérlést .

Az Azure Cosmos DB egy beépített szerepköralapú hozzáférés-vezérlési rendszert tesz elérhetővé, amely lehetővé teszi a következőket:

  • Az adatkérések hitelesítése Microsoft Entra-identitással.
  • Az adatkérések engedélyezése részletes, szerepköralapú engedélymodellel.

Fogalmak

Az Azure Cosmos DB adatsík szerepköralapú hozzáférés-vezérlése olyan fogalmakra épül, amelyek gyakran megtalálhatók más szerepköralapú hozzáférés-vezérlési rendszerekben, például az Azure szerepköralapú hozzáférés-vezérlésében:

  • Az engedélymodell műveletkészletből áll; mindegyik művelet egy vagy több adatbázisműveletre van leképeződve. Néhány példa a műveletekre: elem olvasása, elem írása vagy lekérdezés végrehajtása.
  • Az Azure Cosmos DB-felhasználók az engedélyezett műveletek listáját tartalmazó szerepkör-definíciókat hoznak létre.
  • A szerepkördefiníciók szerepkör-hozzárendelésekkel rendelhetők hozzá adott Microsoft Entra-identitásokhoz. A szerepkör-hozzárendelés meghatározza azt a hatókört is, amelyre a szerepkördefiníció vonatkozik; jelenleg három hatókör létezik:
    • Egy Azure Cosmos DB-fiók,
    • Azure Cosmos DB-adatbázis,
    • Egy Azure Cosmos DB-tároló.

A szerepköralapú hozzáférés-vezérlés általános fogalmainak diagramja, beleértve a szerepkördefiníciókat, a szerepkör-hozzárendeléseket és az egyszerű tagokat.

Engedélymodell

Fontos

Ez az engedélymodell csak az adatok olvasását és írását magában foglaló adatbázisműveleteket fedi le. Nem terjed ki semmilyen felügyeleti műveletre a felügyeleti erőforrásokon, beleértve a következőket:

  • Adatbázis létrehozása/cseréje/törlése
  • Tároló létrehozása/cseréje/törlése
  • Tároló átviteli sebességének olvasása/cseréje
  • Tárolt eljárások létrehozása/cseréje/törlése/olvasása
  • Triggerek létrehozása/cseréje/törlése/olvasása
  • Felhasználó által definiált függvények létrehozása/cseréje/törlése/olvasása

Nem használhat Azure Cosmos DB adatsík SDK-t a felügyeleti műveletek Microsoft Entra-identitással való hitelesítéséhez. Ehelyett azure-beli szerepköralapú hozzáférés-vezérlést kell használnia az alábbi lehetőségek egyikével:

Az Olvasási adatbázis és az Olvasási tároló metaadat-kérésnek minősül. Ezekhez a műveletekhez a következő szakaszban leírtak szerint lehet hozzáférni.

Ez a táblázat felsorolja az engedélymodell által közzétett összes műveletet.

Név Megfelelő adatbázis-műveletek
Microsoft.DocumentDB/databaseAccounts/readMetadata Fiók metaadatainak olvasása. Részletekért tekintse meg a metaadat-kérelmeket .
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create Hozzon létre egy új elemet.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read Az egyes elemek beolvasása az azonosító és a partíciókulcs alapján (pontolvasás).
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace Meglévő elem cseréje.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/upsert "Upsert" egy elem. Ez a művelet létrehoz egy elemet, ha még nem létezik, vagy ha létezik, lecseréli az elemet.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/delete Elem törlése.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery SQL-lekérdezés végrehajtása.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed Olvasás a tároló változáscsatornájából. SQL-lekérdezések végrehajtása szoftverfejlesztői készletek (SDK-k) használatával.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeStoredProcedure Tárolt eljárás végrehajtása.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/manageConflicts Több írási régiós fiók ütközéseinek kezelése (vagyis elemek listázása és törlése az ütközéscsatornából).

Feljegyzés

Amikor lekérdezéseket hajt végre az SDK-kon keresztül, mindkettőre Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery és Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed engedélyekre is szükség van.

A helyettesítő karakterek tárolók és elemek szintjén egyaránt támogatottak:

  • Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
  • Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*

Metaadat-kérelmek

Az Azure Cosmos DB SDK-k írásvédett metaadat-kéréseket adnak ki az inicializálás során, és adott adatkéréseket szolgálnak ki. Ezek a kérések különböző konfigurációs adatokat kérnek le, például:

  • A fiók globális konfigurációja, amely magában foglalja azokat az Azure-régiókat, amelyekben a fiók elérhető.
  • A tárolók partíciókulcsa vagy indexelési szabályzata.
  • A tárolót alkotó fizikai partíciók és azok címei.

A fiókban tárolt adatok egyikét sem fogják lekérni.

Az engedélymodell optimális átláthatóságának biztosítása érdekében a művelet kifejezetten lefedi ezeket a Microsoft.DocumentDB/databaseAccounts/readMetadata metaadat-kérelmeket. Ezt a műveletet minden olyan helyzetben engedélyezni kell, ahol az Azure Cosmos DB-fiók az Azure Cosmos DB SDK-k egyikén keresztül érhető el. Hozzárendelhető (szerepkör-hozzárendeléssel) az Azure Cosmos DB-hierarchia bármely szintjén (azaz fiók, adatbázis vagy tároló).

A művelet által Microsoft.DocumentDB/databaseAccounts/readMetadata engedélyezett tényleges metaadat-kérelmek a művelet hatókörétől függnek:

Hatókör A művelet által engedélyezett kérelmek
Számla • Az adatbázisok listázása a fiók alatt
• A fiókban lévő összes adatbázis esetében az adatbázis hatókörében engedélyezett műveletek
Adatbázis • Adatbázis metaadatainak olvasása
• A tárolók listázása az adatbázis alatt
• Az adatbázis minden tárolója esetében a tároló hatókörében engedélyezett műveletek
Tároló • Tároló metaadatainak olvasása
• Fizikai partíciók listázása a tároló alatt
• Az egyes fizikai partíciók címének feloldása

Fontos

A művelet metaadatai nem tartalmazzák az átviteli sebességet.

Beépített szerepkör-definíciók

Az Azure Cosmos DB két beépített szerepkör-definíciót tesz elérhetővé:

Fontos

A szerepkördefiníciók itt az Azure Cosmos DB-specifikus szerepkördefiníciókra vonatkoznak. Ezek eltérnek az Azure szerepköralapú hozzáférés-vezérlési szerepkör-definícióitól.

ID (Azonosító) Név Belefoglalt műveletek
00000000-0000-0000-0000-000000000001 Cosmos DB beépített adatolvasó Microsoft.DocumentDB/databaseAccounts/readMetadata
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed
00000000-0000-0000-0000-000000000002 A Cosmos DB beépített adatszolgáltatója Microsoft.DocumentDB/databaseAccounts/readMetadata
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*

Egyéni szerepkör-definíciók létrehozása

Egyéni szerepkördefiníció létrehozásakor meg kell adnia a következőt:

  • Az Azure Cosmos DB-fiók neve.
  • A fiókot tartalmazó erőforráscsoport.
  • A szerepkördefiníció típusa: CustomRole.
  • A szerepkördefiníció neve.
  • Azon műveletek listája, amelyeket engedélyezni szeretne a szerepkör számára.
  • Egy vagy több hatókör, amelyhez a szerepkördefiníció hozzárendelhető; A támogatott hatókörök a következők:
    • / (fiókszintű),
    • /dbs/<database-name> (adatbázisszintű),
    • /dbs/<database-name>/colls/<container-name> (tárolószintű).

Feljegyzés

A leírt műveletek a következőkben érhetők el:

Az Azure PowerShell használata

Hozzon létre egy MyReadOnlyRole nevű szerepkört, amely csak olvasási műveleteket tartalmaz:

$resourceGroupName = "<myResourceGroup>"
$accountName = "<myCosmosAccount>"
New-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
    -ResourceGroupName $resourceGroupName `
    -Type CustomRole -RoleName MyReadOnlyRole `
    -DataAction @( `
        'Microsoft.DocumentDB/databaseAccounts/readMetadata',
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read', `
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery', `
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed') `
    -AssignableScope "/"

Hozzon létre egy MyReadWriteRole nevű szerepkört, amely az összes műveletet tartalmazza:

New-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
    -ResourceGroupName $resourceGroupName `
    -Type CustomRole -RoleName MyReadWriteRole `
    -DataAction @( `
        'Microsoft.DocumentDB/databaseAccounts/readMetadata',
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*', `
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*') `
    -AssignableScope "/"

Listázza a saját azonosítóik lekéréséhez létrehozott szerepkördefiníciókat:

Get-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
    -ResourceGroupName $resourceGroupName
RoleName         : MyReadWriteRole
Id               : /subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAcc
                   ounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>
Type             : CustomRole
Permissions      : {Microsoft.Azure.Management.CosmosDB.Models.Permission}
AssignableScopes : {/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAc
                   counts/<myCosmosAccount>}

RoleName         : MyReadOnlyRole
Id               : /subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAcc
                   ounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>
Type             : CustomRole
Permissions      : {Microsoft.Azure.Management.CosmosDB.Models.Permission}
AssignableScopes : {/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAc
                   counts/<myCosmosAccount>}

Az Azure CLI-vel

Hozzon létre egy MyReadOnlyRole nevű szerepkört, amely csak olvasási műveleteket tartalmaz egy role-definition-ro.json nevű fájlban:

{
    "RoleName": "MyReadOnlyRole",
    "Type": "CustomRole",
    "AssignableScopes": ["/"],
    "Permissions": [{
        "DataActions": [
            "Microsoft.DocumentDB/databaseAccounts/readMetadata",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed"
        ]
    }]
}
resourceGroupName='<myResourceGroup>'
accountName='<myCosmosAccount>'
az cosmosdb sql role definition create --account-name $accountName --resource-group $resourceGroupName --body @role-definition-ro.json 

Hozzon létre egy MyReadWriteRole nevű szerepkört, amely egy role-definition-rw.json nevű fájl összes műveletét tartalmazza:

{
    "RoleName": "MyReadWriteRole",
    "Type": "CustomRole",
    "AssignableScopes": ["/"],
    "Permissions": [{
        "DataActions": [
            "Microsoft.DocumentDB/databaseAccounts/readMetadata",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
        ]
    }]
}
az cosmosdb sql role definition create --account-name $accountName --resource-group $resourceGroupName --body @role-definition-rw.json 

Listázza a saját azonosítóik lekéréséhez létrehozott szerepkördefiníciókat:

az cosmosdb sql role definition list --account-name $accountName --resource-group $resourceGroupName
[
  {
    "assignableScopes": [
      "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>"
    ],
    "id": "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>",
    "name": "<roleDefinitionId>",
    "permissions": [
      {
        "dataActions": [
          "Microsoft.DocumentDB/databaseAccounts/readMetadata",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
        ],
        "notDataActions": []
      }
    ],
    "resourceGroup": "<myResourceGroup>",
    "roleName": "MyReadWriteRole",
    "sqlRoleDefinitionGetResultsType": "CustomRole",
    "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions"
  },
  {
    "assignableScopes": [
      "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>"
    ],
    "id": "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>",
    "name": "<roleDefinitionId>",
    "permissions": [
      {
        "dataActions": [
          "Microsoft.DocumentDB/databaseAccounts/readMetadata",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed"
        ],
        "notDataActions": []
      }
    ],
    "resourceGroup": "<myResourceGroup>",
    "roleName": "MyReadOnlyRole",
    "sqlRoleDefinitionGetResultsType": "CustomRole",
    "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions"
  }
]

Az Azure Resource Manager-sablonok használata

Az Azure Resource Manager-sablonok szerepkördefiníciók létrehozásához való használatával kapcsolatos hivatkozásért és példákért lásd: Microsoft.DocumentDB databaseAccounts/sqlRoleDefinitions.

Szerepkör-hozzárendelések létrehozása

Beépített vagy egyéni szerepkördefiníciókat társíthat a Microsoft Entra-identitásokhoz. Szerepkör-hozzárendelés létrehozásakor meg kell adnia a következőt:

  • Az Azure Cosmos DB-fiók neve.

  • A fiókot tartalmazó erőforráscsoport.

  • A hozzárendelni kívánt szerepkördefiníció azonosítója.

  • Annak az identitásnak a fő azonosítója, amelyhez a szerepkördefiníciót hozzá kell rendelni.

  • A szerepkör-hozzárendelés hatóköre; A támogatott hatókörök a következők:

    • / (fiókszintű)
    • /dbs/<database-name> (adatbázisszintű)
    • /dbs/<database-name>/colls/<container-name> (tárolószintű)

    A hatókörnek meg kell egyeznie a szerepkördefiníció hozzárendelhető hatóköreinek egyikének almappájával.

Feljegyzés

Ha szerepkör-hozzárendelést szeretne létrehozni egy szolgáltatásnévhez, mindenképpen használja annak objektumazonosítóját a Microsoft Entra ID portál panel Nagyvállalati alkalmazások szakaszában található módon.

Feljegyzés

A leírt műveletek a következőkben érhetők el:

Az Azure PowerShell használata

Szerepkör hozzárendelése identitáshoz:

$resourceGroupName = "<myResourceGroup>"
$accountName = "<myCosmosAccount>"
$readOnlyRoleDefinitionId = "<roleDefinitionId>" # as fetched above
# For Service Principals make sure to use the Object ID as found in the Enterprise applications section of the Azure Active Directory portal blade.
$principalId = "<aadPrincipalId>"
New-AzCosmosDBSqlRoleAssignment -AccountName $accountName `
    -ResourceGroupName $resourceGroupName `
    -RoleDefinitionId $readOnlyRoleDefinitionId `
    -Scope "/" `
    -PrincipalId $principalId

Az Azure CLI-vel

Szerepkör hozzárendelése identitáshoz:

resourceGroupName='<myResourceGroup>'
accountName='<myCosmosAccount>'
readOnlyRoleDefinitionId='<roleDefinitionId>' # as fetched above
# For Service Principals make sure to use the Object ID as found in the Enterprise applications section of the Azure Active Directory portal blade.
principalId='<aadPrincipalId>'
az cosmosdb sql role assignment create --account-name $accountName --resource-group $resourceGroupName --scope "/" --principal-id $principalId --role-definition-id $readOnlyRoleDefinitionId --principal-type "ServicePrincipal"

Bicep-/Azure Resource Manager-sablonok használata

Bicep-sablonnal végzett beépített hozzárendelés esetén:

resource sqlRoleAssignment 'Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments@2023-04-15' = {
  name: guid(<roleDefinitionId>, <aadPrincipalId>, <databaseAccountResourceId>)
  parent: databaseAccount
  properties:{
    principalId: <aadPrincipalId>
    roleDefinitionId: '/${subscription().id}/resourceGroups/<databaseAccountResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>'
    scope: <databaseAccountResourceId>
  }
}

Az Azure Resource Manager-sablonok szerepkör-hozzárendelések létrehozására való használatával kapcsolatos hivatkozásért és példákért lásd: Microsoft.DocumentDB databaseAccounts/sqlRoleAssignments.

Az SDK inicializálása a Microsoft Entra-azonosítóval

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlés alkalmazásbeli használatához frissítenie kell az Azure Cosmos DB SDK inicializálásának módját. A fiók elsődleges kulcsának átadása helyett egy osztálypéldányt TokenCredential kell átadnia. Ez a példány biztosítja az Azure Cosmos DB SDK számára a Microsoft Entra-jogkivonat lekéréséhez szükséges környezetet a használni kívánt identitás nevében.

A példányok létrehozásának TokenCredential módja meghaladja a jelen cikk hatókörét. Az ilyen példányok sokféleképpen hozhatók létre a használni kívánt Microsoft Entra-identitás típusától függően (felhasználónév, szolgáltatásnév, csoport stb.). A legfontosabb, hogy a példánynak TokenCredential meg kell oldania azt az identitást (egyszerű azonosítót), amelyhez a szerepköreit hozzárendelte. Példákat találhat egy osztály létrehozására TokenCredential :

Az alábbi példák egy egyszerű szolgáltatást használnak egy ClientSecretCredential példányhoz.

A .NET-ben

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlése jelenleg támogatott a .NET SDK V3-ban.

TokenCredential servicePrincipal = new ClientSecretCredential(
    "<azure-ad-tenant-id>",
    "<client-application-id>",
    "<client-application-secret>");
CosmosClient client = new CosmosClient("<account-endpoint>", servicePrincipal);

A Javában

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlése jelenleg támogatott a Java SDK V4-ben.

TokenCredential ServicePrincipal = new ClientSecretCredentialBuilder()
    .authorityHost("https://login.microsoftonline.com")
    .tenantId("<azure-ad-tenant-id>")
    .clientId("<client-application-id>")
    .clientSecret("<client-application-secret>")
    .build();
CosmosAsyncClient Client = new CosmosClientBuilder()
    .endpoint("<account-endpoint>")
    .credential(ServicePrincipal)
    .build();

JavaScriptben

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlése jelenleg támogatott a JavaScript SDK V3-ban.

const servicePrincipal = new ClientSecretCredential(
    "<azure-ad-tenant-id>",
    "<client-application-id>",
    "<client-application-secret>");
const client = new CosmosClient({
    endpoint: "<account-endpoint>",
    aadCredentials: servicePrincipal
});

Pythonban

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlését a Python SDK 4.3.0b4-s és újabb verziói támogatják.

aad_credentials = ClientSecretCredential(
    tenant_id="<azure-ad-tenant-id>",
    client_id="<client-application-id>",
    client_secret="<client-application-secret>")
client = CosmosClient("<account-endpoint>", aad_credentials)

Kérelmek hitelesítése a REST API-n

A REST API engedélyezési fejlécének létrehozásakor állítsa a típusparamétert Microsoft Entra ID-ra, a kivonat-aláírást (sig) pedig az OAuth-jogkivonatra az alábbi példában látható módon:

type=aad&ver=1.0&sig=<token-from-oauth>

Az Adatkezelő használata

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlését az Adatkezelőben (vagy az Azure Portalon vagy a következő címen https://cosmos.azure.com) az Entra ID RBAC engedélyezése beállítás szabályozza. Ezt a beállítást az Adatkezelő felületének jobb felső sarkában található "kerék" ikonnal érheti el.

A beállítás három lehetséges értékkel rendelkezik:

  • Automatikus (alapértelmezett): Ebben a módban a rendszer automatikusan szerepköralapú hozzáférés-vezérlést használ, ha a fiók letiltotta a kulcsok használatát. Ellenkező esetben az Adatkezelő fiókkulcsokat használ az adatkérésekhez.

  • Igaz: Ebben a módban a szerepköralapú hozzáférés mindig az Adatkezelő adatkéréseihez lesz használva. Ha a fiók nincs engedélyezve a szerepköralapú hozzáféréshez, a kérések sikertelenek lesznek.

  • Hamis: Ebben a módban a fiókkulcsok mindig az Adatkezelő adatkéréseihez lesznek használva. Ha a fiók letiltotta a kulcsok használatát, a kérések sikertelenek lesznek.

Ha olyan módokat használ, amelyek lehetővé teszik a szerepköralapú hozzáférést az Azure Portal Adatkezelőjében, az adatkérések végrehajtása előtt az Entra ID RBAC bejelentkezés gombján (az Adatkezelő parancssávján) kell választania. Ez nem szükséges, ha a Cosmos Explorert használja a cosmos.azure.com. Győződjön meg arról, hogy a bejelentkezett identitás megfelelő szerepkör-definíciókkal lett hozzárendelve az adathozzáférés engedélyezéséhez.

Azt is vegye figyelembe, hogy ha a módot a fiókkulcsokat használó módra módosítja, az elindíthat egy kérést az elsődleges kulcs beolvasására a bejelentkezett identitás nevében.

Feljegyzés

Korábban a szerepköralapú hozzáférés csak a Cosmos Explorerben https://cosmos.azure.com/?feature.enableAadDataPlane=truetámogatott. Ez továbbra is támogatott, és felülbírálja az Entra ID RBAC-beállítás értékét. A lekérdezési paraméter használata egyenértékű a korábban említett "True" móddal.

Adatkérések naplózása

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlés használatakor a diagnosztikai naplók identitás- és engedélyezési információkkal bővülnek az egyes adatműveletekhez. Ezzel a kiegészítéssel részletes naplózást végezhet, és lekérheti az Azure Cosmos DB-fiókba küldött minden adatkéréshez használt Microsoft Entra-identitást.

A DataPlaneRequests naplókategória további információi két további oszlopból állnak:

Szerepköralapú hozzáférés-vezérlés kényszerítése egyetlen hitelesítési módszerként

Olyan helyzetekben, amikor az ügyfeleket kizárólag szerepköralapú hozzáférés-vezérléssel szeretné kikényszeríteni az Azure Cosmos DB-hez való csatlakozásra, letilthatja a fiók elsődleges/másodlagos kulcsait. Ha így tesz, a rendszer aktívan elutasítja az elsődleges/másodlagos kulcsot vagy erőforrás-jogkivonatot használó bejövő kéréseket.

Használjon Azure Resource Manager-sablonokat

Az Azure Cosmos DB-fiók Azure Resource Manager-sablonokkal történő létrehozásakor vagy frissítésekor állítsa a tulajdonságot a disableLocalAuth következőre true:

"resources": [
    {
        "type": " Microsoft.DocumentDB/databaseAccounts",
        "properties": {
            "disableLocalAuth": true,
            // ...
        },
        // ...
    },
    // ...
 ]

Korlátok

  • Azure Cosmos DB-fiókonként legfeljebb 100 szerepkördefiníciót és 2000 szerepkör-hozzárendelést hozhat létre.
  • Szerepkördefiníciókat csak az Azure Cosmos DB-fiókhoz tartozó Microsoft Entra-bérlőhöz tartozó Microsoft Entra-identitásokhoz rendelhet.
  • A Microsoft Entra-csoportfeloldás jelenleg nem támogatott a több mint 200 csoporthoz tartozó identitások esetében.
  • A Microsoft Entra-jogkivonat jelenleg fejlécként van átadva az Azure Cosmos DB szolgáltatásnak küldött minden egyes kéréssel, növelve a teljes hasznos adatméretet.

Gyakori kérdések

Ez a szakasz a szerepköralapú hozzáférés-vezérléssel és az Azure Cosmos DB-sel kapcsolatos gyakori kérdéseket tartalmazza.

Mely Azure Cosmos DB API-k támogatják az adatsíkok szerepköralapú hozzáférés-vezérlését?

Jelenleg csak a NoSQL API támogatott.

Elvégezhető a szerepkör-definíciók és szerepkör-hozzárendelések kezelése az Azure Portalon?

Az Azure Portal szerepkör-kezelési támogatása még nem érhető el.

Az Azure Cosmos DB API for NoSQL mely SDK-jai támogatják a szerepköralapú hozzáférés-vezérlést?

A .NET V3, Java V4, JavaScript V3 és Python V4.3+ SDK-k jelenleg támogatottak.

Az Azure Cosmos DB SDK-k automatikusan frissítik a Microsoft Entra-jogkivonatot, amikor lejár?

Igen.

Le lehet tiltani a fiók elsődleges/másodlagos kulcsainak használatát a szerepköralapú hozzáférés-vezérlés használatakor?

Igen, tekintse meg a szerepköralapú hozzáférés-vezérlés kényszerítését egyetlen hitelesítési módszerként.