A referência da API mostra a ação na própria página de cada ponto de extremidade, para que você não precise voltar aqui para procurar uma. Ambos vêm do mesmo lugar: a chamada de autorização no serviço, lida no momento da compilação.
Formas de recurso
Dez tipos de recursos, e a diferença entre eles decide o que uma política pode dizer:
As rotas e os IPs flutuantes não têm nome próprio, portanto, são os dois que não podem ser nomeados de forma legível em uma política. Condição em tags para aqueles.
O slot da região está populado. Uma VPC existe em uma região, então uma política escrita para uma região não alcança outra — e
crn:network:*:… é como você escreve uma que as abrange deliberadamente.
As ações
Coleções de rotas de gateway filtram por acesso de tabela de rotas. Ler o gateway sozinho não concede acesso às suas rotas:
network:ListRoutes é verificado contra o CRN e as tags de recursos de cada tabela. As tabelas negadas são omitidas antes da paginação e a resposta inclui apenas identidades de tabela de rota visíveis.
A criação é verificada com o nome que você pediu
Uma criação é autorizada contra o CRN do recurso about to exist, construído a partir do nome na solicitação. Assim, uma convenção de nomenclatura é aplicável:team-b-web é negada antes que qualquer coisa seja escrita. As próprias tags da solicitação estão disponíveis como contexto de condição em um create também, via basalt:RequestTag/<key>, para que você possa exigir uma tag de equipe na mesma instrução.
Coleções de nível superior usam permissões de curinga
As listas de recursos de nível superior são autorizadas contra o curinga da coleção — literalmentecrn:network:<region>:<account>:vpc/*, não contra cada linha. Um recurso de política de vpc/prod-* não corresponde a essa string, então restringir uma lista pelo padrão de nome não a restringe, ela nega-a inteiramente:
Então conceda o curinga para listar e escopo as operações que agem em um recurso. A listagem diz ao chamador que algo existe e nada mais.
Os sub-recursos são governados pelo seu pai — na maioria das vezes
As regras de grupo de segurança não têm CRN próprio. Todas as quatro ações de regra — lista, crie, obtenha e exclua — são verificadas em relação ao CRN do grupo pai com as tags do grupo como contexto. Concedernetwork:CreateSecurityGroupRule em um grupo é, portanto, exatamente tão restrito quanto ele lê, e uma condição de tag no grupo governa quem pode adicionar regras a ele.
As rotas são a exceção, e a divisão vale a pena conhecer:
- Verificado contra a mesa
- Verificado contra a rota
network:ListRoutes e network:CreateRoute são autorizados contra o
tabela de rotas Isso é o que permite que você conceda “pode adicionar rotas à tabela privada” sem concedê-lo em um nível de domínio. *.Uma concessão para criar rotas em uma tabela é semelhante a uma concessão para alterar onde as sub-redes dessa tabela enviam tráfego. Alguém que pode adicionar
0.0.0.0/0 a uma tabela de sub-rede privada a tornou pública — nenhuma mudança de gateway e nenhuma mudança de grupo de segurança necessária, porque o gateway já estava anexado.A associação à interface é uma ação, não duas
network:SetInterfaceSecurityGroups cobre tanto a conexão quanto a desconexão, porque o ponto final é um PUT que substitui todo o conjunto. Não há nenhuma ação de desconexão separada a ser retida: qualquer um que possa adicionar um grupo a uma interface pode remover todos os grupos dela, o que deixa essa interface descartando todo o tráfego.
Conceda-o nas interfaces que um chamador deve gerenciar, não em interface/*.
Próximo
Políticas
Estrutura do documento, condições e como
deny é avaliado.Solução de problemas
O que cada recusa significa, e a ordem em que as coisas têm que se desfazer.

