Esta página descreve, de forma geral, como criar níveis de acesso básicos. Para criar níveis de acesso personalizados e usar o modo avançado na Google Cloud consola, consulte o artigo Criar um nível de acesso personalizado.
Esta página inclui implementações mais focadas dos níveis de acesso. Veja os exemplos seguintes:
- Limite o acesso numa rede empresarial
- Limite o acesso por atributos do dispositivo
- Conceda acesso por utilizador ou conta de serviço
Antes de começar
- Saiba mais sobre os níveis de acesso.
Crie um nível de acesso básico
Consola
Para criar um nível de acesso básico:
Abra a página Access Context Manager na Google Cloud consola.
Se lhe for pedido, selecione a sua organização.
Na parte superior da página Gestor de contexto de acesso, clique em Novo.
No painel Novo nível de acesso:
No campo Título do nível de acesso, introduza um título para o nível de acesso. O título tem de ter, no máximo, 50 carateres, começar por uma letra e só pode conter números, letras, sublinhados e espaços.
Na secção Condições, clique no botão Adicionar para o tipo de atributo que quer adicionar e, em seguida, indique os valores que quer aplicar a esse atributo.
Para ver uma lista completa dos atributos que pode adicionar, leia acerca dos atributos do nível de acesso.
Por exemplo, se quiser que o nível de acesso considere a origem de um pedido na sua rede, selecione o atributo Sub-redes de IP.
Repita este passo para adicionar vários atributos à mesma condição. Quando uma condição tem vários atributos, todos os atributos têm de ser cumpridos pelo pedido de acesso.
Uma condição de nível de acesso pode incluir um de cada tipo de atributo. Alguns atributos incluem opções adicionais, como o atributo Política de dispositivos.
Os níveis de acesso suportam condições baseadas na identidade do utilizador. No entanto, para adicionar identidades a uma condição, tem de criar ou atualizar o nível de acesso através da CLI gcloud ou da API.
Use a opção Quando a condição for cumprida, devolva para especificar se quer que a condição exija que um pedido cumpra todos os atributos especificados (VERDADEIRO) ou se o pedido tem de cumprir tudo, exceto esses atributos (FALSO).
Por exemplo, se quiser recusar pedidos de um determinado intervalo de endereços IP da sua rede, especifique o intervalo de endereços IP através do atributo IP Subnetworks e, em seguida, defina a condição como FALSE.
Opcionalmente, clique em Adicionar outra condição para adicionar uma condição adicional ao seu nível de acesso e, de seguida, repita os dois passos anteriores.
Por exemplo, se quiser negar o acesso a um subconjunto de endereços IP num intervalo de endereços IP mais amplo, crie uma nova condição, especifique o intervalo de endereços IP do subconjunto para o atributo Sub-redes de IP e defina a condição para devolver FALSO.
Repita este passo para adicionar várias condições ao mesmo nível de acesso.
Se criou mais do que uma condição, use a opção Combinar condição com para especificar se quer que o nível de acesso exija que um pedido cumpra, pelo menos, uma das condições (OU) ou todas as condições (E).
Clique em Guardar.
gcloud
Antes de começar
- Se ainda não existir, crie uma política de acesso para a sua organização.
Para criar um nível de acesso através da ferramenta de linhas de comando gcloud
, use o comando gcloud access-context-manager levels create
.
gcloud access-context-manager levels create LEVEL_NAME OPTIONS \ --policy=POLICY
Onde:
LEVEL_NAME é o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados. O nome pode ter um máximo de 50 carateres.
OPTIONS são as opções obrigatórias da tabela seguinte.
Opções basic-level-spec
Um ficheiro YAML que especifica uma ou mais condições para o nível de acesso.
title
Um título curto para o nível de acesso. O título do nível de acesso é apresentado na Google Cloud consola.
combine-function
(Opcional) Determina como as condições são combinadas.
Valores válidos:
AND
,OR
description
(Opcional) Uma descrição detalhada do nível de acesso.
POLICY é o ID da política de acesso da sua organização. Se tiver uma política predefinida definida, este parâmetro é opcional.
Opcionalmente, pode incluir qualquer uma das flags ao nível do gcloud.
ficheiro YAML basic-level-spec
Quando usa a ferramenta de linha de comandos gcloud
para criar um nível de acesso, tem de fornecer um ficheiro YAML para a opção basic-level-spec
. O ficheiro YAML define uma ou mais condições para o nível de acesso. As condições têm de conter, pelo menos, um atributo. Quando uma condição contém mais do que um atributo, estes são combinados como uma operação AND (todos têm de ser verdadeiros) ou como uma operação NAND (nenhum pode ser verdadeiro), consoante o atributo negate
esteja incluído na condição.
Para ver uma lista completa dos atributos que pode incluir no seu ficheiro YAML, leia acerca dos atributos do nível de acesso.
Para mais informações sobre os níveis de acesso e o YAML, consulte o exemplo de YAML para um nível de acesso.
Exemplo de comando
gcloud access-context-manager levels create Device_Trust \
--basic-level-spec=corpdevspec.yaml \
--combine-function=AND \
--description='Access level that conforms to corporate spec.' \
--title='Device_Trust Extended' \
--policy=1521580097614100
API
Antes de começar
- Se ainda não existir, crie uma política de acesso para a sua organização.
Para criar um nível de acesso, chame accessLevels.create
.
POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
Onde:
- POLICY é o ID da política de acesso da sua organização.
Corpo do pedido
O corpo do pedido tem de incluir um recurso AccessLevel
que especifique as condições pretendidas para o novo nível de acesso.
Cada Condition
tem um ou mais atributos que são avaliados como uma operação AND (todos têm de ser verdadeiros) ou como uma operação NAND (nenhum pode ser verdadeiro), consoante o campo negate
esteja definido como true
. A avaliação resultante determina se a condição é cumprida ou não.
Corpo da resposta
Se for bem-sucedido, o corpo da resposta da chamada contém um recurso Operation
que fornece detalhes sobre a operação POST
.
Exemplos de implementações
Os exemplos seguintes abrangem algumas das formas práticas como a sua organização pode querer implementar níveis de acesso. Estes exemplos pressupõem que a sua organização já tem uma política de acesso.
Limite o acesso numa rede empresarial
Este exemplo descreve como criar uma condição de nível de acesso que permite o acesso apenas a partir de um intervalo especificado de endereços IP (por exemplo, os que se encontram numa rede empresarial).
Ao restringir o intervalo de endereços IP aos quais é concedido acesso, pode dificultar a exfiltração de dados por parte de um atacante que esteja dentro ou fora da sua organização.
Para este exemplo, suponha que quer criar um nível de acesso que permita a um grupo de auditores internos aceder ao serviço Cloud Logging para um projeto denominado sensitive-data. Todos os dispositivos dos auditores têm IPs atribuídos numa sub-rede que varia entre 203.0.113.0 e 203.0.113.127. Sabe que não vão ser atribuídos dispositivos a essa sub-rede, exceto os usados pelos auditores.
Se quiser usar um intervalo de endereços IP privados (por exemplo, 192.168.0.0/16
ou 172.16.0.0/12
), consulte o artigo Permita o acesso a recursos protegidos a partir de um endereço IP interno para ver informações adicionais e um exemplo de implementação através dos VPC Service Controls.
Consola
Abra a página Access Context Manager na Google Cloud consola.
Se lhe for pedido, selecione a sua organização.
Na parte superior da página Gestor de contexto de acesso, clique em Novo.
No painel Novo nível de acesso, na secção Condições, clique em Adicionar atributo e, de seguida, clique em Sub-redes de IP.
Na caixa Sub-redes IP, selecione IP público ou IP privado.
Se selecionar IP público, introduza um ou mais intervalos IPv4 ou IPv6 formatados como blocos CIDR.
Neste exemplo, para limitar o acesso apenas aos auditores, introduza
203.0.113.0/25
na caixa Sub-redes de IP.Se selecionar IP privado, clique em Selecionar redes de VPC. Pode especificar redes de VPC através de uma das três opções disponíveis na lista Opções de importação.
Opção 1:
Selecione Procurar redes de VPC na sua organização e selecione as redes de VPC.
Clique em Adicionar redes de VPC selecionadas.
Clique em Selecionar sub-redes de IP e selecione as sub-redes.
Clique em Adicionar sub-redes IP.
Opção 2:
Selecione Introduzir manualmente o endereço da rede de VPC e introduza uma ou mais redes de VPC.
Clique em Adicionar rede de VPC.
Clique em Selecionar sub-redes de IP e selecione as sub-redes.
Clique em Adicionar sub-redes IP.
Option 3:
Selecione Carregar ficheiro CSV (substitui as redes existentes).
Se usar um ficheiro CSV para adicionar redes VPC e sub-redes a um nível de acesso, o Access Context Manager substitui as redes VPC e as sub-redes selecionadas anteriormente.
Clique em Procurar e carregue o ficheiro CSV. No ficheiro CSV, tem de especificar as redes VPC e as sub-redes no seguinte formato:
VPC_NETWORK_NAME_1 | IP_RANGE_1 | IP_RANGE_2 | ... VPC_NETWORK_NAME_2 | . | . | ... . | . | . | ... . | . | . | ...
Clique em Importar redes.
Com o ficheiro CSV, o Access Context Manager preenche os nomes das redes VPC e as informações das sub-redes nas caixas Endereço da rede VPC e Sub-redes IP, respetivamente.
Para informações sobre o nome da rede VPC e o formato do endereço IP privado, consulte o artigo Use o endereço IP interno nos níveis de acesso.
Clique em Guardar.
gcloud
Crie um ficheiro YAML para um nível de acesso que inclua um ou mais intervalos IPv4 ou IPv6 formatados como blocos CIDR.
Neste exemplo, para limitar o acesso apenas aos auditores, introduziria o seguinte no ficheiro YAML:
- ipSubnetworks: - 203.0.113.0/25
Se quiser usar um endereço IP privado, tem de introduzir as seguintes informações no ficheiro YAML:
- vpcNetworkSources: - vpcSubnetwork: network: VPC_NETWORK_NAME vpcIpSubnetworks: - IP_RANGE
Substitua VPC_NETWORK_NAME e IP_RANGE pelos valores descritos na secção Use o endereço IP interno nos níveis de acesso.
Guarde o ficheiro. Neste exemplo, o nome do ficheiro é CONDITIONS.yaml.
Crie o nível de acesso.
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
Onde:
NAME é o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados.
TITLE é um título legível. Tem de ser exclusivo da política.
POLICY é o ID da política de acesso da sua organização. Se tiver uma política predefinida definida, este parâmetro é opcional.
Deverá ver uma saída semelhante à seguinte:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
Crie um corpo do pedido para criar um recurso
AccessLevel
que inclua um ou mais intervalos IPv4 ou IPv6 formatados como blocos CIDR.Neste exemplo, para limitar o acesso apenas aos auditores, introduziria o seguinte no corpo do pedido:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "ipSubnetworks": [ "203.0.113.0/25" ] } ] } }
Onde:
NAME é o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados.
TITLE é um título legível. Tem de ser exclusivo da política.
Se quiser usar um endereço IP privado, tem de introduzir as seguintes informações no corpo do pedido:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "vpcNetworkSources": [ { "vpcSubnetwork": { "network": VPC_NETWORK_NAME, "vpcIpSubnetworks": [ IP_RANGE ] } } ] } ] } }
Substitua VPC_NETWORK_NAME e IP_RANGE pelos valores descritos na secção Use o endereço IP interno nos níveis de acesso.
Crie o nível de acesso chamando
accessLevels.create
.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
Onde:
- POLICY é o ID da política de acesso da sua organização.
Limite o acesso por atributos do dispositivo
Este exemplo descreve como criar um nível de acesso que concede acesso apenas a dispositivos que cumprem um conjunto especificado de requisitos, como uma determinada versão do sistema operativo (SO).
As informações sobre os dispositivos são fornecidas ao Gestor de contexto de acesso através da Validação de pontos finais. Podem ser verificados os seguintes critérios ao determinar se deve ser concedido acesso:
- O bloqueio de ecrã está ativado
- A encriptação de armazenamento está ativada
- O dispositivo está a executar um tipo e uma versão especificados do sistema operativo
Para este exemplo, vamos assumir que a sua organização usa apenas máquinas com o ChromeOS ou o Windows instalados. Para adicionar uma camada de segurança, quer criar um nível de acesso que impeça o acesso por parte de qualquer pessoa que use outros sistemas operativos. Além disso, para gerir o risco, quer certificar-se de que apenas determinadas versões dos SOs podem obter acesso.
Consola
Abra a página Access Context Manager na Google Cloud consola.
Se lhe for pedido, selecione a sua organização.
Na parte superior da página Gestor de contexto de acesso, clique em Novo.
No painel Novo nível de acesso, na secção Condições, clique em Adicionar atributo e, de seguida, clique em Política de dispositivos.
Adicione os atributos da política de dispositivos:
Clique em Adicionar política de SO e, de seguida, em Política do ChromeOS.
Na caixa Versão mínima, introduza a versão mínima do ChromeOS que quer permitir.
Repita os passos 1 e 2 para a Política do SO Windows.
Clique em Guardar.
gcloud
Crie um ficheiro YAML para um nível de acesso que inclua uma política do dispositivo com restrições do SO.
Neste exemplo, para permitir apenas dispositivos com uma versão mínima aceitável do Chrome OS e do Windows, introduziria o seguinte no ficheiro YAML:
- devicePolicy: osConstraints: - osType: DESKTOP_CHROME_OS minimumVersion: 11316.165.0 - osType: DESKTOP_WINDOWS minimumVersion: 10.0.1809
Guarde o ficheiro. Neste exemplo, o nome do ficheiro é CONDITIONS.yaml.
Crie o nível de acesso.
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
Onde:
NAME é o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados.
TITLE é um título legível. Tem de ser exclusivo da política.
POLICY é o ID da política de acesso da sua organização. Se tiver uma política predefinida definida, este parâmetro é opcional.
Deverá ver uma saída semelhante à seguinte:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
Crie um corpo do pedido para criar um recurso
AccessLevel
que inclua uma política de dispositivos com restrições do SO.Neste exemplo, para permitir apenas dispositivos com uma versão mínima aceitável do Chrome OS e do Windows, introduziria o seguinte no corpo do pedido:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "devicePolicy": { "osConstraints": [ { "osType": "DESKTOP_CHROME_OS", "minimumVersion": "11316.165.0" }, { "osType": "DESKTOP_WINDOWS", "minimumVersion": "10.0.1809" } ] { } ] } }
Onde:
NAME é o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados.
TITLE é um título legível. Tem de ser exclusivo da política.
Crie o nível de acesso chamando
accessLevels.create
.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
Onde:
- POLICY é o ID da política de acesso da sua organização.
Conceda acesso por utilizador ou conta de serviço
A concessão de acesso com base na identidade é frequentemente útil em conjunto com contas de serviço, por exemplo, para permitir que uma Cloud Function aceda a dados.
Este exemplo descreve como conceder acesso a utilizadores e contas de serviço específicos, ao mesmo tempo que inclui níveis de acesso existentes para mostrar um exemplo de níveis de acesso aninhados. Neste caso, os utilizadores especificados são incluídos neste nível de acesso, independentemente de cumprirem as condições especificadas nos níveis de acesso existentes. Este novo nível de acesso pode ser considerado um nível menos restritivo do que os níveis de acesso existentes.
Consola
Atualmente, a consola Google Cloud não suporta a adição de responsáveis aos níveis de acesso. Se quiser adicionar responsáveis aos níveis de acesso, tem de usar a ferramenta de linha de comandos gcloud
ou a API.
gcloud
Crie um ficheiro YAML que contenha uma condição que liste os principais aos quais quer conceder acesso.
Neste exemplo, quer adicionar o administrador do sistema (
sysadmin@example.com
) e uma conta de serviço (service@project.iam.gserviceaccount.com
).- members: - user:sysadmin@example.com - serviceAccount:service@project.iam.gserviceaccount.com
Adicione uma condição que liste os níveis de acesso existentes que quer incluir neste nível de acesso.
Neste exemplo, vamos assumir que os níveis de acesso se chamam
Device_Trust
eIP_Trust
, e que247332951433
é o nome da sua política de acesso.- members: - user:sysadmin@example.com - serviceAccount:service@project.iam.gserviceaccount.com - requiredAccessLevels: - accessPolicies/247332951433/accessLevels/Device_Trust - accessPolicies/247332951433/accessLevels/IP_Trust
Guarde o ficheiro. Neste exemplo, o nome do ficheiro é CONDITIONS.yaml.
Crie o nível de acesso com o comando
create
.gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --combine-function=OR \ --policy=POLICY
Onde:
NAME é o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados.
TITLE é um título legível. Tem de ser exclusivo da política.
POLICY é o ID da política de acesso da sua organização. Se tiver uma política predefinida definida, este parâmetro é opcional.
A definição de
combine-function
éOR
. O valor predefinido,AND
, requer que todas as condições sejam cumpridas antes de ser concedido um nível de acesso. O valorOR
concede aos principais acesso, mesmo que outras condições não sejam cumpridas.
Deverá ver uma saída semelhante à seguinte:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
Crie um corpo do pedido para criar um recurso
AccessLevel
que inclua uma condição que liste os principais aos quais quer conceder acesso.Neste exemplo, quer adicionar o administrador do sistema (
sysadmin@example.com
) e uma conta de serviço (service@project.iam.gserviceaccount.com
).{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "members": [ "user:sysadmin@example.com", "serviceAccount:service@project.iam.gserviceaccount.com" ] } ] } }
Onde:
NAME é o nome exclusivo do nível de acesso. Tem de começar por uma letra e incluir apenas letras, números e sublinhados.
TITLE é um título legível. Tem de ser exclusivo da política.
Adicione uma condição que liste os níveis de acesso existentes que quer incluir neste nível de acesso.
Neste exemplo, vamos assumir que os níveis de acesso se chamam
Device_Trust
eIP_Trust
, e que247332951433
é o nome da sua política de acesso.{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "members": [ "user:sysadmin@example.com", "serviceAccount:service@project.iam.gserviceaccount.com" ] }, { "requiredAccessLevels": [ "accessPolicies/247332951433/accessLevels/Device_Trust", "accessPolicies/247332951433/accessLevels/IP_Trust" ] } ] } }
Defina
combiningFunction
comoOR
.O valor predefinido para
combiningFunction
,AND
, requer que todas as condições sejam cumpridas antes de ser concedido um nível de acesso. O valorOR
concede aos principais acesso, mesmo que outras condições, como o endereço IP ou as condições herdadas de outros níveis de acesso obrigatórios, não sejam cumpridas.{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "members": [ "user:sysadmin@example.com", "serviceAccount:service@project.iam.gserviceaccount.com" ] }, { "requiredAccessLevels": [ "accessPolicies/247332951433/accessLevels/Device_Trust", "accessPolicies/247332951433/accessLevels/IP_Trust" ] } ], "combiningFunction": "OR" } }
Crie o nível de acesso chamando
accessLevels.create
.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
Onde:
- POLICY é o ID da política de acesso da sua organização.