Como usar o controle de acesso baseado em função no Gerenciamento de API do Azure
APLICA-SE A: Todas as camadas de gerenciamento de API
A Gestão de API do Azure baseia-se no controlo de acesso baseado em funções do Azure (RBAC do Azure) para permitir uma gestão de acesso detalhada para os serviços e entidades da Gestão de API (por exemplo, APIs e políticas). Este artigo fornece uma visão geral das funções internas e personalizadas no Gerenciamento de API. Para obter mais informações sobre o gerenciamento de acesso no portal do Azure, consulte Introdução ao gerenciamento de acesso no portal do Azure.
Nota
Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Funções de serviço incorporadas
Atualmente, o Gerenciamento de API fornece três funções internas e adicionará mais duas funções em um futuro próximo. Estas funções podem ser atribuídas em diferentes âmbitos, incluindo o de subscrição, grupo de recursos e instância da Gestão de API individual. Por exemplo, se atribuir a função "Leitor de Serviços da Gestão de API" a um utilizador ao nível do grupo de recursos, o utilizador terá acesso de leitura a todas as instâncias da Gestão de API dentro do grupo de recursos.
A tabela a seguir fornece breves descrições das funções internas. Você pode atribuir essas funções usando o portal do Azure ou outras ferramentas, incluindo Azure PowerShell, CLI do Azure e API REST. Para obter detalhes sobre como atribuir funções internas, consulte Atribuir funções do Azure para gerenciar o acesso aos recursos de assinatura do Azure.
Role | Acesso de leitura[1] | Acesso de gravação[2] | Criação, eliminação, dimensionamento, VPN e configuração do domínio personalizado do serviço | Acesso ao portal legado do publicador | Description |
---|---|---|---|---|---|
Contribuidor do Serviço Gestão de API | ✓ | ✓ | ✓ | ✓ | Superutilizador. Tem acesso CRUD total aos serviços e entidades da Gestão de API (por exemplo, APIs e políticas). Tem acesso ao portal legado do publicador. |
Leitor de Serviços da Gestão de API | ✓ | Tem acesso só de leitura aos serviços e entidades da Gestão de API. | |||
Operador de Serviços da Gestão de API | ✓ | ✓ | Pode gerir os serviços da Gestão de API, mas não as entidades. |
[1] Acesso de leitura a entidades e serviços de Gestão de API (por exemplo, APIs e políticas).
[2] Acesso de gravação a serviços e entidades de Gerenciamento de API, exceto as seguintes operações: criação, exclusão e dimensionamento de instâncias; Configuração de VPN; e configuração de domínio personalizada.
Funções de espaço de trabalho incorporadas
O Gerenciamento de API fornece as seguintes funções internas para colaboradores em espaços de trabalho em uma instância de Gerenciamento de API.
Um colaborador do espaço de trabalho deve receber uma função com escopo de espaço de trabalho e uma função com escopo de serviço.
Role | Scope | Description |
---|---|---|
Colaborador do espaço de trabalho de gerenciamento de API | área de trabalho | Pode gerenciar o espaço de trabalho e exibir, mas não modificar seus membros. Essa função deve ser atribuída no escopo do espaço de trabalho. |
Leitor de espaço de trabalho de gerenciamento de API | área de trabalho | Tem acesso somente leitura a entidades no espaço de trabalho. Essa função deve ser atribuída no escopo do espaço de trabalho. |
Espaço de trabalho de gerenciamento de API Desenvolvedor de API | área de trabalho | Tem acesso de leitura a entidades no espaço de trabalho e acesso de leitura e gravação a entidades para edição de APIs. Essa função deve ser atribuída no escopo do espaço de trabalho. |
Gerenciador de produtos da API do espaço de trabalho de gerenciamento de API | área de trabalho | Tem acesso de leitura a entidades no espaço de trabalho e acesso de leitura e gravação a entidades para publicação de APIs. Essa função deve ser atribuída no escopo do espaço de trabalho. |
Espaço de trabalho do serviço de gerenciamento de API Desenvolvedor de API | service | Tem acesso de leitura a tags e produtos e acesso de gravação para permitir: ▪️ Atribuindo APIs a produtos ▪️ Atribuição de tags a produtos e APIs Essa função deve ser atribuída no escopo do serviço. |
Gerenciador de produtos da API do espaço de trabalho do serviço de gerenciamento de API | service | Tem o mesmo acesso que o API Management Service Workspace API Developer, bem como acesso de leitura a usuários e acesso de gravação para permitir a atribuição de usuários a grupos. Essa função deve ser atribuída no escopo do serviço. |
Dependendo de como os colaboradores do espaço de trabalho usam ou gerenciam o espaço de trabalho, recomendamos também atribuir uma das seguintes funções RBAC fornecidas pelo Azure no escopo do gateway do espaço de trabalho: Leitor, Colaborador ou Proprietário.
Funções internas do portal do desenvolvedor
Role | Scope | Description |
---|---|---|
Editor de conteúdo do API Management Developer Portal | service | Pode personalizar o portal do desenvolvedor, editar seu conteúdo e publicá-lo usando as APIs do Azure Resource Manager. |
Funções personalizadas
Se nenhuma das funções internas atender às suas necessidades específicas, as funções personalizadas poderão ser criadas para fornecer um gerenciamento de acesso mais granular para entidades de Gerenciamento de API. Por exemplo, você pode criar uma função personalizada que tenha acesso somente leitura a um serviço de Gerenciamento de API, mas só tenha acesso de gravação a uma API específica. Para saber mais sobre funções personalizadas, consulte Funções personalizadas no Azure RBAC.
Nota
Para poder ver uma instância de Gerenciamento de API no portal do Azure, uma função personalizada deve incluir a Microsoft.ApiManagement/service/read
ação.
Quando você cria uma função personalizada, é mais fácil começar com uma das funções internas. Edite os atributos para adicionar Actions, NotActions ou AssignableScopes e salve as alterações como uma nova função. O exemplo a seguir começa com a função "API Management Service Reader" e cria uma função personalizada chamada "Calculator API Editor". Você pode atribuir a função personalizada no escopo de uma API específica. Consequentemente, essa função só tem acesso a essa API.
$role = Get-AzRoleDefinition "API Management Service Reader Role"
$role.Id = $null
$role.Name = 'Calculator API Contributor'
$role.Description = 'Has read access to Contoso APIM instance and write access to the Calculator API.'
$role.Actions.Add('Microsoft.ApiManagement/service/apis/write')
$role.Actions.Add('Microsoft.ApiManagement/service/apis/*/write')
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add('/subscriptions/<Azure subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.ApiManagement/service/<APIM service instance name>/apis/<API name>')
New-AzRoleDefinition -Role $role
New-AzRoleAssignment -ObjectId <object ID of the user account> -RoleDefinitionName 'Calculator API Contributor' -Scope '/subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.ApiManagement/service/<APIM service instance name>/apis/<API name>'
O artigo Operações do provedor de recursos do Azure Resource Manager contém a lista de permissões que podem ser concedidas no nível de Gerenciamento de API.
Próximos passos
Para saber mais sobre o controle de acesso baseado em função no Azure, consulte os seguintes artigos: