Esta página se aplica à Apigee e à Apigee híbrida.
Com o gerenciamento de identidade e acesso (IAM), você pode definir e aplicar o controle de acesso condicional para recursos do Google Cloud, incluindo os do hub de API. Para mais informações sobre as condições do IAM, consulte as Informações gerais sobre as condições do IAM.
No API Hub, é possível aplicar o acesso condicional com base nos seguintes atributos de condição do recurso do IAM:
- Atributo resource.service condition:
use para configurar o acesso condicional com base no serviço do Google Cloud que está sendo usado.
Por exemplo, é possível definir uma condição que limite o acesso de um usuário a recursos que usam o
apihub.googleapis.com
. Para conferir uma lista de valores compatíveis, consulte Valores de serviço de recursos. - Atributo de condição resource.type: use para configurar o acesso condicional com base no tipo de recurso acessado. Por exemplo, é possível definir uma condição que limite o acesso de um usuário a
apihub.googleapis.com/Api
. Para conferir uma lista de valores aceitos, consulte Valores de tipo de recurso. - Atributo de condição resource.name: use para configurar o acesso condicional com base em todo ou parte do nome de um recurso. Para conferir uma lista de formatos de nome de hub de API aceitos, consulte Formato do nome do recurso.
Adicionar condição do IAM
Para adicionar uma condição do IAM a um principal atual (usuário, grupo ou conta de serviço), siga estas etapas:
- No console do Google Cloud, abra a página IAM.
- Selecione o projeto, a pasta ou a organização.
- Na lista de principais, encontre a principal a que você quer adicionar a condição do IAM e clique em
O painel Acesso para editar é exibido.
(Editar principal).
- Encontre o papel a que você quer adicionar a condição do IAM e clique em + Adicionar condição do IAM.
- No painel Adicionar condição, forneça estas informações:
- Título: insira um nome para a condição que você está adicionando ao papel.
- Descrição (opcional): insira uma descrição para a condição.
- É possível adicionar uma condição usando o Criador de condições ou o Editor de condições.
O Criador de condições fornece uma interface interativa para selecionar o tipo de condição desejado, o operador e outros detalhes aplicáveis sobre a expressão. O Editor de condições oferece uma interface baseada em texto para inserir manualmente uma expressão de condição usando a sintaxe CEL.
Para instruções detalhadas sobre como usar o Criador de condições ou o Editor de condições, consulte Configurar o acesso com base em recursos.
- Clique em Salvar para aplicar a condição.
- Clique em Salvar novamente no painel Editar acesso para atualizar o principal.
Exemplos de como usar condições do IAM para o hub de API
Exemplo 1: controle de acesso para todos os recursos da API que começam com a condição do IAM com base no nome do recurso.
A expressão de condição a seguir define o controle de acesso da seguinte maneira:
- Acesso aos recursos da API que começam com o prefixo. Isso inclui acesso a todos os recursos da API, incluindo versões, implantações, especificações, operações e definições.
- Acesso não condicional padrão baseado em função a outros recursos do hub da API.
( resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API_ID_PREFIX") || ( resource.type != "apihub.googleapis.com/Api" && resource.type != "apihub.googleapis.com/Version" && resource.type != "apihub.googleapis.com/Spec" && resource.type != "apihub.googleapis.com/ApiOperation" && resource.type != "apihub.googleapis.com/Definition" ) )
Substitua:
PROJECT_ID
: o ID do projeto Google Cloud .LOCATION
: o local do hub da API.API_ID_PREFIX
: o prefixo do nome do recurso da API.
Exemplo 2: controle de acesso a várias APIs com condições do IAM com base no tipo de recurso.
A expressão de condição a seguir define o controle de acesso da seguinte maneira:
- Acesso aos recursos da API do hub de APIs que começam com o prefixo.
- Acesso ao recurso de versão do hub de API que começa com um ID de versão especificado.
- Acesso aos recursos de especificação do hub de API que começam com um ID de especificação especificado.
- Acesso não condicional padrão baseado em função a outros recursos do hub da API.
( resource.service == "apihub.googleapis.com" && resource.type == "apihub.googleapis.com/Api" && resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API1_ID_PREFIX") ) || ( resource.service == "apihub.googleapis.com" && resource.type == "apihub.googleapis.com/Version" && resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API2_ID/versions/API2_VERSION_ID" ) || ( resource.service == "apihub.googleapis.com" && resource.type == "apihub.googleapis.com/Spec" && resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API3_ID/versions/API3_VERSION_ID/specs/API3_SPEC_ID" ) || ( resource.type != "apihub.googleapis.com/Api" && resource.type != "apihub.googleapis.com/Version" && resource.type != "apihub.googleapis.com/Spec" && resource.type != "apihub.googleapis.com/ApiOperation" && resource.type != "apihub.googleapis.com/Definition" )
PROJECT_ID
: o ID do projeto Google Cloud .LOCATION
: o local do hub da API.API1_ID_PREFIX
: o prefixo do primeiro nome de recurso da API.API2_ID
: o ID do segundo recurso da API.API2_VERSION_ID
: o ID do segundo recurso de versão da API.API3_ID
: o ID do terceiro recurso da API.API3_VERSION_ID
: o ID do terceiro recurso de versão da API.API3_SPEC_ID
: o ID do terceiro recurso de especificação da API.