Kontrola dostępu na podstawie ról platformy Azure w usłudze Azure Cosmos DB

DOTYCZY: Nosql Mongodb Cassandra Gremlin Tabeli

Uwaga

Ten artykuł dotyczy kontroli dostępu opartej na rolach na potrzeby operacji płaszczyzny zarządzania w usłudze Azure Cosmos DB. Jeśli używasz operacji płaszczyzny danych, dane są zabezpieczone przy użyciu kluczy podstawowych, tokenów zasobów lub kontroli dostępu opartej na rolach usługi Azure Cosmos DB.

Aby dowiedzieć się więcej na temat kontroli dostępu opartej na rolach stosowanych do operacji płaszczyzny danych w interfejsie API dla NoSQL, zobacz Artykuły Secure access to data and Azure Cosmos DB RBAC (Zabezpieczanie dostępu do danych i kontrola dostępu oparta na rolach w usłudze Azure Cosmos DB). Aby uzyskać informacje o interfejsie API usługi Azure Cosmos DB dla bazy danych MongoDB, zobacz Kontrola dostępu oparta na rolach płaszczyzny danych w interfejsie API dla bazy danych MongoDB.

Usługa Azure Cosmos DB zapewnia wbudowaną kontrolę dostępu na podstawie ról (RBAC) platformy Azure dla typowych scenariuszy zarządzania w usłudze Azure Cosmos DB. Osoba, która ma profil w usłudze Microsoft Entra ID, może przypisać te role platformy Azure użytkownikom, grupom, jednostkom usługi lub tożsamościom zarządzanym w celu udzielenia lub odmowy dostępu do zasobów i operacji w zasobach usługi Azure Cosmos DB. Przypisania ról są ograniczone tylko do dostępu na płaszczyźnie kontroli, co obejmuje dostęp do kont, baz danych, kontenerów i ofert usługi Azure Cosmos DB (przepływność).

Wbudowane role

Poniżej przedstawiono wbudowane role obsługiwane przez usługę Azure Cosmos DB:

Rola wbudowana Opis
Współautor konta usługi DocumentDB Może zarządzać kontami usługi Azure Cosmos DB.
Rola czytelnika konta usługi Cosmos DB Może odczytywać dane konta usługi Azure Cosmos DB.
CosmosBackupOperator Może przesłać żądanie przywrócenia w witrynie Azure Portal na potrzeby okresowej bazy danych z włączoną kopią zapasową lub kontenera. Może modyfikować interwał tworzenia kopii zapasowych i przechowywanie w witrynie Azure Portal. Nie można uzyskać dostępu do żadnych danych ani użyć Eksploratora danych.
CosmosRestoreOperator Może wykonać akcję przywracania dla konta usługi Azure Cosmos DB z trybem ciągłej kopii zapasowej.
Cosmos DB Operator Może aprowizować konta, bazy danych i kontenery usługi Azure Cosmos DB. Nie można uzyskać dostępu do żadnych danych ani użyć Eksploratora danych.

Zarządzanie dostępem i tożsamościami (IAM)

Okienko Kontrola dostępu (IAM) w witrynie Azure Portal służy do konfigurowania kontroli dostępu opartej na rolach na platformie Azure w zasobach usługi Azure Cosmos DB. Role są stosowane do użytkowników, grup, jednostek usługi i tożsamości zarządzanych w usłudze Active Directory. Role wbudowane lub role niestandardowe można używać dla użytkowników indywidualnych i grup. Poniższy zrzut ekranu przedstawia integrację usługi Active Directory (Azure RBAC) przy użyciu kontroli dostępu (IAM) w witrynie Azure Portal:

Access control (IAM) in the Azure portal - demonstrating database security.

Role niestandardowe

Oprócz wbudowanych ról użytkownicy mogą również tworzyć role niestandardowe na platformie Azure i stosować te role do jednostek usługi we wszystkich subskrypcjach w ramach dzierżawy usługi Active Directory. Role niestandardowe umożliwiają użytkownikom tworzenie definicji ról platformy Azure przy użyciu niestandardowego zestawu operacji dostawcy zasobów. Aby dowiedzieć się, które operacje są dostępne do tworzenia ról niestandardowych dla usługi Azure Cosmos DB, zobacz Operacje dostawcy zasobów usługi Azure Cosmos DB

Napiwek

Role niestandardowe, które muszą uzyskiwać dostęp do danych przechowywanych w usłudze Azure Cosmos DB lub korzystać z Eksploratora danych w witrynie Azure Portal, muszą mieć Microsoft.DocumentDB/databaseAccounts/listKeys/* akcję.

Uwaga

Przypisania ról niestandardowych mogą nie zawsze być widoczne w witrynie Azure Portal.

Ostrzeżenie

Klucze kont nie są automatycznie obracane ani odwołyne po zmianach kontroli dostępu opartej na rolach zarządzania. Te klucze zapewniają dostęp do operacji płaszczyzny danych. Podczas usuwania dostępu do kluczy od użytkownika zaleca się również wymianę kluczy. W przypadku płaszczyzny danych RBAC zaplecze usługi Cosmos DB odrzuci żądania, gdy role/oświadczenia nie będą już zgodne. Jeśli użytkownik wymaga tymczasowego dostępu do operacji płaszczyzny danych, zaleca się użycie płaszczyzny danych RBAC usługi Azure Cosmos DB.

Zapobieganie zmianom z zestawów SDK usługi Azure Cosmos DB

Dostawca zasobów usługi Azure Cosmos DB można zablokować, aby zapobiec wszelkim zmianom w zasobach z klienta nawiązującego połączenie przy użyciu kluczy konta (czyli aplikacji łączących się za pośrednictwem zestawu SDK usługi Azure Cosmos DB). Ta funkcja może być pożądana dla użytkowników, którzy chcą mieć wyższy stopień kontroli i ładu w środowiskach produkcyjnych. Zapobieganie zmianom z zestawu SDK umożliwia również funkcje, takie jak blokady zasobów i dzienniki diagnostyczne dla operacji płaszczyzny sterowania. Klienci łączący się z zestawem SDK usługi Azure Cosmos DB nie będą mogli zmieniać żadnej właściwości dla kont, baz danych, kontenerów i przepływności usługi Azure Cosmos DB. Operacje związane z odczytywaniem i zapisywaniem danych w kontenerach usługi Azure Cosmos DB nie mają wpływu.

Po włączeniu tej funkcji zmiany w dowolnym zasobie mogą zostać wprowadzone tylko od użytkownika z odpowiednią rolą platformy Azure i poświadczeniami firmy Microsoft Entra, w tym tożsamościami usługi zarządzanej.

Ostrzeżenie

Włączenie tej funkcji może mieć wpływ na aplikację. Upewnij się, że rozumiesz wpływ przed jego włączeniem.

Sprawdź listę przed włączeniem

To ustawienie uniemożliwi wszelkie zmiany w zasobie usługi Azure Cosmos DB z dowolnego klienta łączącego się przy użyciu kluczy kont, w tym dowolnego zestawu SDK usługi Azure Cosmos DB, wszelkich narzędzi łączących się za pośrednictwem kluczy konta. Aby zapobiec problemom lub błędom aplikacji po włączeniu tej funkcji, sprawdź, czy aplikacje wykonują dowolne z następujących akcji przed włączeniem tej funkcji, w tym:

  • Tworzenie, usuwanie zasobów podrzędnych, takich jak bazy danych i kontenery. Obejmuje to zasoby dla innych interfejsów API, takich jak Cassandra, MongoDB, Gremlin i zasoby tabel.

  • Odczytywanie lub aktualizowanie przepływności zasobów na poziomie bazy danych lub kontenera.

  • Modyfikowanie właściwości kontenera, w tym zasad indeksu, czasu wygaśnięcia i unikatowych kluczy.

  • Modyfikowanie procedur składowanych, wyzwalaczy lub funkcji zdefiniowanych przez użytkownika.

Jeśli aplikacje (lub użytkownicy za pośrednictwem witryny Azure Portal) wykonują dowolne z tych akcji, muszą zostać zmigrowane do wykonania za pośrednictwem szablonów usługi ARM, programu PowerShell, interfejsu wiersza polecenia platformy Azure, interfejsu wiersza polecenia platformy Azure, rest lub biblioteki zarządzania platformy Azure. Pamiętaj, że usługa Azure Management jest dostępna w wielu językach.

Ustawianie za pomocą szablonu usługi ARM

Aby ustawić tę właściwość przy użyciu szablonu usługi ARM, zaktualizuj istniejący szablon lub wyeksportuj nowy szablon dla bieżącego wdrożenia, a następnie dołącz element "disableKeyBasedMetadataWriteAccess": true do właściwości zasobów databaseAccounts . Poniżej przedstawiono podstawowy przykład szablonu usługi Azure Resource Manager z tym ustawieniem właściwości.

{
    {
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "name": "[variables('accountName')]",
      "apiVersion": "2020-04-01",
      "location": "[parameters('location')]",
      "kind": "GlobalDocumentDB",
      "properties": {
        "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
        "locations": "[variables('locations')]",
        "databaseAccountOfferType": "Standard",
        "disableKeyBasedMetadataWriteAccess": true
        }
    }
}

Ważne

Upewnij się, że podczas ponownego wdrażania za pomocą tej właściwości uwzględnisz inne właściwości dla twojego konta i zasobów podrzędnych. Nie wdrażaj tego szablonu w taki sposób, jak jest lub spowoduje zresetowanie wszystkich właściwości konta.

Ustawianie za pomocą interfejsu wiersza polecenia platformy Azure

Aby włączyć korzystanie z interfejsu wiersza polecenia platformy Azure, użyj poniższego polecenia:

az cosmosdb update  --name [CosmosDBAccountName] --resource-group [ResourceGroupName]  --disable-key-based-metadata-write-access true

Ustawianie za pomocą programu PowerShell

Aby włączyć korzystanie z programu Azure PowerShell, użyj poniższego polecenia:

Update-AzCosmosDBAccount -ResourceGroupName [ResourceGroupName] -Name [CosmosDBAccountName] -DisableKeyBasedMetadataWriteAccess true

Następne kroki