Configurar identidades gerenciadas com o Microsoft Entra ID para sua conta do Azure Cosmos DB

APLICA-SE AO: NoSQL MongoDB Cassandra Gremlin Table

As identidades gerenciadas dos recursos do Azure fornecem aos serviços do Azure uma identidade gerenciada automaticamente na ID do Microsoft Entra. Este artigo mostra como criar uma identidade gerenciada para contas do Azure Cosmos DB.

Pré-requisitos

Adicionar uma identidade atribuída pelo sistema

Usando o portal do Azure

Para habilitar uma identidade gerenciada atribuída pelo sistema em uma conta existente do Azure Cosmos DB, navegue até sua conta no portal do Azure e selecione Identidade no menu à esquerda.

The Identity menu entry

Na seção Atribuída pelo sistema, mude o Status para Ativado e selecione Salvar. Será solicitado que você confirme a criação da identidade gerenciada atribuída pelo sistema.

Enabling a system-assigned identity

Depois que a identidade for criada e atribuída, você poderá recuperar a respectiva ID de objeto (principal).

Retrieving the object ID of a system-assigned identity

Usando o modelo do ARM (Azure Resource Manager)

Importante

Use uma apiVersion de 2021-03-15 ou posterior ao trabalhar com identidades gerenciadas.

Para habilitar uma identidade atribuída pelo sistema em uma conta do Azure Cosmos DB nova ou existente, inclua a seguinte propriedade na definição de recurso:

"identity": {
    "type": "SystemAssigned"
}

A seção resources do modelo do ARM deve ser semelhante ao seguinte:

"resources": [
    {
        "type": " Microsoft.DocumentDB/databaseAccounts",
        "identity": {
            "type": "SystemAssigned"
        },
        // ...
    },
    // ...
]

Depois que sua conta do Azure Cosmos DB for criada ou atualizada, ela mostrará a seguinte propriedade:

"identity": {
    "type": "SystemAssigned",
    "tenantId": "<azure-ad-tenant-id>",
    "principalId": "<azure-ad-principal-id>"
}

Usando a CLI do Azure

Para habilitar uma identidade atribuída pelo sistema ao criar uma conta nova do Azure Cosmos DB, adicione a opção --assign-identity:

resourceGroupName='myResourceGroup'
accountName='mycosmosaccount'

az cosmosdb create \
    -n $accountName \
    -g $resourceGroupName \
    --locations regionName='West US 2' failoverPriority=0 isZoneRedundant=False \
    --assign-identity

Você também pode adicionar uma identidade atribuída pelo sistema em uma conta existente usando o comando az cosmosdb identity assign:

resourceGroupName='myResourceGroup'
accountName='mycosmosaccount'

az cosmosdb identity assign \
    -n $accountName \
    -g $resourceGroupName

Depois que sua conta do Azure Cosmos DB for criada ou atualizada, você poderá buscar a identidade atribuída com o comando az cosmosdb identity show:

resourceGroupName='myResourceGroup'
accountName='mycosmosaccount'

az cosmosdb identity show \
    -n $accountName \
    -g $resourceGroupName
{
    "type": "SystemAssigned",
    "tenantId": "<azure-ad-tenant-id>",
    "principalId": "<azure-ad-principal-id>"
}

Adicionar uma identidade atribuída pelo usuário

Usando o portal do Azure

Para habilitar uma identidade gerenciada atribuída pelo usuário em uma conta existente do Azure Cosmos DB, navegue até a conta no portal do Azure e selecione Identidade no menu à esquerda.

The Identity menu entry

Na seção atribuída pelo usuário, selecione + Adicionar.

Enabling a user-assigned identity

Encontre e selecione todas as identidades que você deseja atribuir à conta do Azure Cosmos DB e clique em Adicionar.

Selecting all the identities to assign

Usando o modelo do ARM (Azure Resource Manager)

Importante

Use uma apiVersion de 2021-03-15 ou posterior ao trabalhar com identidades gerenciadas.

Para habilitar uma identidade atribuída pelo usuário em uma conta do Azure Cosmos DB nova ou existente, inclua a seguinte propriedade na definição de recurso:

"identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
        "<identity-resource-id>": {}
    }
}

A seção resources do modelo do ARM deve ser semelhante ao seguinte:

"resources": [
    {
        "type": " Microsoft.DocumentDB/databaseAccounts",
        "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": {
                "<identity-resource-id>": {}
            }
        },
        // ...
    },
    // ...
]

Depois que sua conta do Azure Cosmos DB tiver sido criada ou atualizada, ela mostrará a seguinte propriedade:

"identity": {
    "type": "UserAssigned",
    "tenantId": "<azure-ad-tenant-id>",
    "principalId": "<azure-ad-principal-id>"
}

Usando a CLI do Azure

Para habilitar uma identidade atribuída pelo usuário durante a criação de uma conta do Azure Cosmos DB, adicione a opção --assign-identity e passe a ID do recurso da identidade que você quer atribuir:

resourceGroupName='myResourceGroup'
accountName='mycosmosaccount'

az cosmosdb create \
    -n $accountName \
    -g $resourceGroupName \
    --locations regionName='West US 2' failoverPriority=0 isZoneRedundant=False \
    --assign-identity <identity-resource-id>

Você também pode adicionar uma identidade atribuída pelo usuário em uma conta existente usando o comando az cosmosdb identity assign:

resourceGroupName='myResourceGroup'
accountName='mycosmosaccount'

az cosmosdb identity assign \
    -n $accountName \
    -g $resourceGroupName
    --identities <identity-resource-id>

Depois de criar ou atualizar a sua conta do Azure Cosmos DB, você pode buscar a identidade atribuída com o comando az cosmosdb identity show:

resourceGroupName='myResourceGroup'
accountName='mycosmosaccount'

az cosmosdb identity show \
    -n $accountName \
    -g $resourceGroupName
{
    "type": "UserAssigned",
    "tenantId": "<azure-ad-tenant-id>",
    "principalId": "<azure-ad-principal-id>"
}

Remover uma identidade atribuída pelo sistema ou pelo usuário

Usando o modelo do ARM (Azure Resource Manager)

Importante

Use uma apiVersion de 2021-03-15 ou posterior ao trabalhar com identidades gerenciadas.

Para remover uma identidade atribuída pelo sistema da sua conta do Azure Cosmos DB, defina a type da propriedade identity como None:

"identity": {
    "type": "None"
}

Usando a CLI do Azure

Para remover todas as identidades gerenciadas da sua conta do Azure Cosmos DB, use o comando az cosmosdb identity remove:

resourceGroupName='myResourceGroup'
accountName='mycosmosaccount'

az cosmosdb identity remove \
    -n $accountName \
    -g $resourceGroupName

Próximas etapas