As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Diferenças entre as permissões verificadas da Amazon e a linguagem de política do Cedar
O Amazon Verified Permissions usa o mecanismo de linguagem de política Cedar para realizar suas tarefas de autorização. No entanto, existem algumas diferenças entre a implementação nativa do Cedar e a implementação do Cedar encontrada no Verified Permissions. Este tópico identifica essas diferenças.
Definição de namespace
A implementação do Cedar no Verified Permissions tem as seguintes diferenças em relação à implementação nativa do Cedar:
-
O Verified Permissions oferece suporte somente a um namespace em um esquema
definido em um armazenamento de políticas. -
As permissões verificadas não permitem que você crie um namespace
que seja uma string vazia ou inclua os seguintes valores: aws
,amazon
, ou.cedar
Suporte do modelo de política
O Verified Permissions e o Cedar permitem espaços reservados no escopo apenas para principal
e resource
. No entanto, o Verified Permissions também requer que nem principal
nem resource
sejam irrestritos.
A política a seguir é válida no Cedar, mas é rejeitada pelo Verified Permissions porque principal
não tem restrições.
permit(principal, action == Action::"view", resource == ?resource);
Os dois exemplos a seguir são válidos no Cedar e no Verified Permissions porque tanto principal
quanto resource
têm restrições.
permit(principal == User::"alice", action == Action::"view", resource == ?resource);
permit(principal == ?principal, action == Action::"a", resource in ?resource);
Suporte ao esquema
As permissões verificadas exigem que todos os nomes de JSON chave do esquema sejam cadeias de caracteres não vazias. O Cedar permite strings vazias em alguns casos, como para propriedades ou namespaces.
Suporte ao tipo de extensão
As Permissões Verificadas oferecem suporte aos tipos de extensão
Os tipos de extensão incluem os tipos de dados de ponto fixo (decimal
) e de endereço IP (ipaddr
).
JSONFormato de cedro para entidades
No momento, as Permissões verificadas exigem que você passe a lista de entidades a serem consideradas em uma solicitação de autorização usando a estrutura definida para o EntitiesDefinition, que é uma matriz de EntityItemelementos. Atualmente, as Permissões Verificadas não oferecem suporte à aprovação da lista de entidades a serem consideradas em uma solicitação de autorização no JSONformato Cedar
Definição de grupos de ação
Os métodos de autorização do Cedar requerem uma lista das entidades a serem consideradas durante a avaliação de uma solicitação de autorização com base nas políticas.
Você pode definir as ações e os grupos de ação usados pela sua aplicação no esquema. No entanto, o Cedar não inclui o esquema como parte de uma solicitação de avaliação. Em vez disso, o Cedar usa o esquema somente para validar as políticas e os modelos de políticas que você envia. Como o Cedar não faz referência ao esquema durante as solicitações de avaliação, mesmo que você tenha definido grupos de ação no esquema, você também deve incluir a lista de todos os grupos de ações como parte da lista de entidades que você deve passar para as operações de autorização. API
O Verified Permissions faz isso para você. Todos os grupos de ação definidos em seu esquema são automaticamente anexados à lista de entidades que você passa como parâmetro para as operações IsAuthorized
ou IsAuthorizedWithToken
.
Formatação de entidades
A JSON formatação das entidades nas Permissões Verificadas difere do Cedar das seguintes maneiras:
-
Nas Permissões verificadas, um JSON objeto deve ter todos os seus pares de valores-chave agrupados em um JSON objeto com o nome de.
Record
-
Uma JSON lista em Permissões verificadas deve ser agrupada em um par JSON de valores-chave em que o nome da chave é
Set
e o valor é a JSON lista original do Cedar. -
Para
String
,Long
, e nomesBoolean
de tipo, cada par de valores-chave do Cedar é substituído por um JSON objeto em Permissões verificadas. O nome do objeto é o nome da chave original. Dentro do JSON objeto, há um par de valores-chave em que o nome da chave é o nome do tipo do valor escalar (String
Long
, ouBoolean
) e o valor é o valor da entidade Cedar. -
A formatação de sintaxe das entidades do Cedar e das entidades do Verified Permissions difere nos seguintes aspectos:
Formato do Cedar Formato do Verified Permissions uid
Identifier
type
EntityType
id
EntityId
attrs
Attributes
parents
Parents
exemplo - Listas
Os exemplos a seguir mostram como uma lista de entidades é expressa em Cedar e Permissões Verificadas, respectivamente.
exemplo - Avaliação de políticas
Os exemplos a seguir mostram como as entidades são formatadas para avaliar uma política em uma solicitação de autorização no Cedar e no Verified Permissions, respectivamente.
Limites de comprimento e tamanho
O Verified Permissions oferece suporte ao armazenamento sob a forma de armazenamentos de políticas que reterão seu esquema, políticas e modelos de políticas. Esse armazenamento faz com que o Verified Permissions aplique alguns limites de comprimento e tamanho que não são relevantes para o Cedar.
Objeto | Limite do Verified Permissions (em bytes) | Limite do Cedar |
---|---|---|
Tamanho da política¹ | 10.000 | Nenhum |
Descrição da política em linha | 150 | Não aplicável ao Cedar |
Tamanho do modelo de política | 10.000 | Nenhum |
Tamanho do esquema | 100.000 | Nenhum |
Tipo de entidade | 200 | Nenhum |
ID da apólice | 64 | Nenhum |
ID do modelo de política | 64 | Nenhum |
ID da entidade | 200 | Nenhum |
ID do armazenamento de políticas | 64 | Não aplicável ao Cedar |
¹ No Verified Permissions, há um limite para políticas por armazenamento de políticas com base no tamanho combinado de entidades principais, ações e recursos de políticas criadas no armazenamento de políticas. O tamanho total de todas as políticas relacionadas a um único recurso não pode exceder 200.000 bytes. Para políticas vinculadas a modelos, o tamanho do modelo de política é contabilizado somente uma vez, mais o tamanho de cada conjunto de parâmetros usados para instanciar cada política vinculada a modelo.