version é sempre 2024-01-01. Qualquer outra coisa é rejeitada.
Escolha o escopo da política
As políticas de conta pertencem a uma conta e são anexadas às suas funções e contas de serviço. Eles concedem ações de serviço de conta. As políticas da organização pertencem ao espaço de trabalho e concedemworkspace:*, billing:*, quota:* e audit:*. Anexe-os a usuários ou grupos ou delege-os explicitamente a uma função de conta ou conta de serviço.
O formato do documento é compartilhado, mas os domínios de permissão são separados. actions: ["*"] e exclusões de ação se aplicam somente dentro do domínio da política. Uma política de administrador de conta não pode conceder acesso à organização. Uma política de organização não pode conceder acesso a recursos de conta ordinários.
O editor visual do console oferece serviços apropriados ao escopo selecionado. A edição de JSON usa as mesmas regras; escrever uma ação do outro escopo não a torna eficaz.
Declarações
string, optional
Uma etiqueta para seu próprio uso. Não tem efeito sobre a avaliação.
allow | deny
obrigatório
Em minúsculas. Um
deny explícito vence qualquer allow no domínio da política sendo avaliado.array
obrigatório
Exatamente um do par. A definição de ambos ou nenhum deles é rejeitada quando o documento é salvo.
array
obrigatório
Exatamente um do par, mesma regra.
array, optional
Todos eles devem ser mantidos para que a declaração se aplique.
Acções
As ações sãoservice:Action, e * é o único curinga.
Recursos
Os recursos são CRNs, com* como único curinga. O layout de dois pontos e barra é comparado literalmente, então a forma tem que estar certa:
Nomeação por exclusão
not_actions e not_resources cobrem tudo exceto o que eles listam.
Condições
Uma condição compara uma chave de contexto com valores usando um operador. Cada condição em uma declaração deve ser mantida para que ela se aplique.Operadores
O que acontece quando a chave está faltando
Esta é a parte que decide se um corrimão funciona, por isso vale a pena ser preciso. A razão é que um deny precisa disparar na requisição que ele está protegendo. “Negar a menos que a solicitação venha desses endereços” tem que pegar uma solicitação sem endereço - tratar a chave faltante como sem correspondência faria com que o guardrail falhasse em abrir exatamente quando importa.Chaves de múltiplos valores
Algumas chaves de contexto são conjuntos em vez de valores únicos —basalt:TagKeys é o conjunto de chaves de tag que uma requisição carrega. Para comparar com um, adicione um set_operator:
for_all_valuesé válido quando cada membro do conjunto de solicitações satisfaz o operador. Um conjunto ausente ou vazio é mantido vacuously — uma requisição que não possui tags não é cercada por uma restrição de tag-chave.for_any_valueé válido quando pelo menos um membro é válido. Um conjunto ausente ou vazio não se mantém.
Chaves de contexto
Os dois prefixos de tag respondem a perguntas diferentes.
ResourceTag cerca o acesso a coisas já rotuladas de uma certa maneira; RequestTag cerca o que um chamador tem permissão para rotular algo como.
Exemplos de trabalhos
Somente leitura em um serviço
Somente leitura em um serviço
Limitar uma equipe a um ambiente por tag
Limitar uma equipe a um ambiente por tag
Alcança apenas recursos já marcados como
env=staging:Isso não concede nada em um recurso sem tag:
equals em uma chave ausente falha. Isso é geralmente o que você quer — um recurso sem rótulo não está silenciosamente no escopo.Forçar novos recursos a serem rotulados corretamente
Forçar novos recursos a serem rotulados corretamente
Um chamador pode criar instâncias apenas enquanto as marca
env=staging:Cerce uma rede de escritório e faça isso de verdade
Cerce uma rede de escritório e faça isso de verdade
ip_address matches — deixa a cerca desligada sempre que a chave estiver ausente.Um corrimão que sobrevive a grandes subsídios
Um corrimão que sobrevive a grandes subsídios
Permitir que um agente de plano de dados leia a chave de um certificado
Permitir que um agente de plano de dados leia a chave de um certificado
GetCertificateMaterial é uma ação separada da leitura de um certificado, precisamente para que isso possa ser concedido de forma restrita. Veja certificates.Políticas gerenciadas e inline
Política de gestão
Um objeto autônomo com seu próprio CRN. As políticas de conta são anexadas a funções e contas de serviço; as políticas de organização também são anexadas a usuários e grupos. Edite uma vez e todos os anexos usam o documento atualizado.
Política em linha
Escrita diretamente em um principal, nomeado em vez de identificado, e apagada com ele. Para uma subvenção única que nunca deve ser reutilizada ou acidentalmente anexada em outro lugar.
iam.basaltic.sh. As políticas da organização usam o mesmo caminho de coleta em workspace.basaltic.sh:
- Console
- API
- CLI
- Go
Abra Identity & access → Policies e escolha Create Policy para uma política de conta. Use Organization → Organization policies para uma política da organização. Policy Document suporta edição visual e JSON. Anexe a política salva da página de identidade apropriada.
- Console
- API
- CLI
- Go
Cada usuário, grupo, conta de serviço e função tem um cartão Inline Policies com Add Inline Policy — um editor JSON de Name e Policy Document. O nome identifica a política, por isso é fixado uma vez salva e a edição altera apenas o documento.
is_system. Eles são mantidos pela plataforma, compartilhados entre as organizações e não podem ser editados, seja anexados ou não. O console os identifica como System em vez de Custom e os abre como View Policy, sem salvar.
Validação
Um documento é rejeitado ao salvar, não ignorado silenciosamente, quando:versionestá ausente ou não é2024-01-01statementsestá vazioeffectnão éallowoudeny- uma declaração define tanto
actionsenot_actions, ou nenhuma - uma instrução define tanto
resourcesenot_resources, ou nenhum - uma condição não tem
key, ou umoperatorouset_operatornão reconhecido
Um operador não reconhecido em um documento armazenado — um salvo antes de um operador ser renomeado, por exemplo — nunca corresponde. Em uma instrução allow, ela é ignorada; em uma deny, ela é tratada como uma hard deny quando a ação e o recurso coincidem, então um guardrail quebrado falha fechado em vez de aberto.
Próximo
Limites de permissão
Limitar o que essas políticas podem conceder.
Funções e credenciais
As políticas de sessão restringem as credenciais da mesma forma.
Referências de recursos
Os nomes de política, função e grupo são imutáveis. Campos de relacionamento comopolicy, role, group e groups[] aceitam um UUID, um nome ou um CRN. A sintaxe seleciona a pesquisa; um recurso ausente nunca aciona uma segunda pesquisa usando outra interpretação.
As políticas de conta usam crn:iam::<account-handle>:policy/<name>. As políticas de conta do sistema usam crn:iam:::policy/<Name>. Um nome nu prefere uma política na conta selecionada, em seguida, uma política do sistema. Um CRN de sistema totalmente qualificado seleciona esse namespace mesmo quando uma política personalizada tem o mesmo nome.
Políticas de organização usam crn:workspace:::policy/<name>; políticas de organização de sistema usam crn:workspace:::system-policy/<Name>. Uma pesquisa de política da organização não pesquisa políticas de conta, ou vice-versa.
Funções usam crn:iam::<account-handle>:role/<name>. Os grupos usam crn:workspace:::group/<name>. As solicitações de anexo de política de organização delegada usam o UUID da política em policy_id; consulte Permissões de espaço de trabalho.
Listas com filtros name e crn aplicam-se ambos antes da paginação. Um valor vazio ainda é um filtro. Um CRN estrangeiro ou não correspondido retorna uma página vazia. Veja resource references para os filtros de cada lista.
