Configurar identidades geridas com o Microsoft Entra ID para a conta do Azure Cosmos DB

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela

As identidades geridas para os recursos do Azure proporcionam aos recursos do Azure uma identidade gerida automaticamente no Microsoft Entra ID. Este artigo mostra como criar uma identidade gerenciada para contas do Azure Cosmos DB.

Pré-requisitos

Adicionar uma identidade atribuída ao sistema

Utilizar o portal do Azure

Para habilitar uma identidade gerenciada atribuída ao 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 Sistema atribuído, inverta o Status para Ativado e selecione Salvar. Ser-lhe-á pedido que confirme a criação da identidade gerida atribuída ao sistema.

Enabling a system-assigned identity

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

Retrieving the object ID of a system-assigned identity

Usando um modelo do Azure Resource Manager (ARM)

Importante

Certifique-se de usar um apiVersion de 2021-03-15 ou superior ao trabalhar com identidades gerenciadas.

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

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

A resources seção do seu modelo ARM deve ter a seguinte aparência:

"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>"
}

Com a CLI do Azure

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

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 ao sistema em uma conta existente usando o az cosmosdb identity assign comando:

resourceGroupName='myResourceGroup'
accountName='mycosmosaccount'

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

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

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

Utilizar o portal do Azure

Para habilitar uma identidade gerenciada atribuída pelo usuário 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 ao usuário, selecione + Adicionar.

Enabling a user-assigned identity

Localize e selecione todas as identidades que deseja atribuir à sua conta do Azure Cosmos DB e, em seguida, selecione Adicionar.

Selecting all the identities to assign

Usando um modelo do Azure Resource Manager (ARM)

Importante

Certifique-se de usar um apiVersion de 2021-03-15 ou superior ao trabalhar com identidades gerenciadas.

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

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

A resources seção do seu modelo ARM deve ter a seguinte aparência:

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

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

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

Com a CLI do Azure

Para habilitar uma identidade atribuída pelo usuário ao criar uma nova conta do Azure Cosmos DB, adicione a opção e passe a --assign-identity ID de recurso da identidade que você deseja 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 ao usuário em uma conta existente usando o az cosmosdb identity assign comando:

resourceGroupName='myResourceGroup'
accountName='mycosmosaccount'

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

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

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 um modelo do Azure Resource Manager (ARM)

Importante

Certifique-se de usar um apiVersion de 2021-03-15 ou superior ao trabalhar com identidades gerenciadas.

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

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

Com a CLI do Azure

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

resourceGroupName='myResourceGroup'
accountName='mycosmosaccount'

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

Próximos passos