Lógica de avaliação - Amazon Simple Notification Service

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á.

Lógica de avaliação

No momento da avaliação, o objetivo é decidir se uma solicitação de concessão deve ser permitida ou negada. A lógica de avaliação segue várias regras básicas:

  • Por padrão, todas as solicitações para usar o recurso que venham de outras pessoas, e não de você, serão negadas.

  • Um valor permitir substitui qualquer negação padrão.

  • Uma negação explícita substitui todas as permissões.

  • A ordem em que as políticas são avaliadas não é importante.

O seguinte fluxograma e discussão descrevem em mais detalhes como a decisão é tomada.

Ilustra o processo de tomada de decisão usado AWS para determinar se uma solicitação de acesso a um recurso deve ser permitida ou negada. Ele começa com uma negação padrão, verifica se há qualquer negação explícita nas políticas aplicáveis, depois procura todas as instruções de permissão e, finalmente, se nenhuma permissão for encontrada, a solicitação será negada por padrão.
1

A decisão começa com uma negação padrão.

2

O código de aplicação avalia todas as políticas aplicáveis à solicitação (com base no recurso, na entidade principal, na ação e nas condições).

A ordem em que o código de aplicação avalia as políticas não é importante.

3

Em todas essas políticas, o código de aplicação procura uma instrução de negação explícita que se aplica à solicitação.

Se o código de aplicação encontrar uma instrução desse tipo, ele retornará a decisão de “negar”, e o processo será concluído (essa é uma negação explícita; para obter mais informações, consulte Negação explícita).

4

Se nenhuma negação explícita for encontrada, o código de aplicação procurará qualquer instrução “permitir” aplicável à solicitação.

Se encontrar uma instrução “permitir”, o código de aplicação retornará a decisão de “permitir”, e o processo será concluído (o serviço continuará a processar a solicitação).

5

Se nenhuma instrução de permitir for encontrada, a decisão final será “negar”, porque não havia negação explícita, ou permitir, porque é considerada uma negação padrão (para obter mais informações, consulte Negação padrão).

Interação entre negações explícitas e padrão

Uma política resulta em uma negação padrão caso não se aplique diretamente à solicitação. Por exemplo, se um usuário solicitar o uso da AmazonSNS, mas a política sobre o tópico não se referir nem um pouco Conta da AWS à do usuário, essa política resultará em uma negação padrão.

Uma política também resultará em uma negação padrão se uma condição em uma declaração não for atendida. Se todas as condições da declaração forem atendidas, a política resultará em permitir ou negação explícita, com base no valor do elemento efeito na política. As políticas não especificam o que fazer se uma condição não for atendida, e, portanto, o resultado padrão nesse caso é uma negação padrão.

Por exemplo, digamos que você deseja impedir solicitações que venham da Antártica. Você cria uma política (chamada Política A1) que permite uma solicitação somente se ela não for originária da Antártica. O seguinte diagrama ilustra a política.

Ilustra uma política (Política A1) que permite uma solicitação se ela não vier da Antártica. Ela mostra a condição de que a solicitação não deve ser originária da Antártica para que o efeito “Permitir” seja aplicado; caso contrário, a ação padrão é negar a solicitação.

Se alguém enviar uma solicitação dos EUA, a condição será atendida (a solicitação não é originária da Antártica). Portanto, a solicitação será permitida. Porém, se alguém enviar uma solicitação da Antártica, a condição não será atendida, e, assim, o resultado da política será uma negação padrão.

Você pode transformar o resultado em uma negação explícita recriando a política (chamada Política A2), como mostrado no diagrama a seguir. Aqui, a política negará explicitamente uma solicitação se ela for originária da Antártica.

Ilustra uma política (Política A2) que nega explicitamente uma solicitação se ela vier da Antártica. Isso mostra que, quando a condição é atendida (a solicitação é originária da Antártica), a política resulta em uma negação explícita, o que significa que a solicitação é sempre negada nessas circunstâncias.

Se alguém enviar uma solicitação da Antártica, a condição será atendida, e o resultado da política será uma negação explícita.

A distinção entre negação padrão e negação explícita é importante porque uma negação padrão pode ser substituída por uma permissão, mas uma negação explícita não pode. Por exemplo, digamos que haja outra política que permita solicitações se elas chegarem em 1.º de junho de 2010. Como essa política afeta o resultado geral quando associada à política que restringe o acesso da Antártica? Compararemos o resultado geral ao associar a política baseada em data (que chamaremos de Política B) com as políticas anteriores A1 e A2. O Cenário 1 associa a Política A1 à Política B, e o Cenário 2 associa a Política A2 à Política B. A figura e a discussão a seguir mostram os resultados quando uma solicitação chega da Antártica em 1.º de junho de 2010.

Compara dois cenários em que uma política restringe o acesso com base na origem da solicitação (Antártica) e na data da solicitação (1º de junho de 2010). No Cenário 1, a combinação de políticas faz com que uma negação padrão seja substituída por uma permissão, permitindo a solicitação. No Cenário 2, uma negação explícita de uma política substitui a permissão de outra, resultando na negação da solicitação.

No Cenário 1, a Política A1 retorna uma negação padrão, conforme descrito anteriormente nesta seção. A Política B retorna um permitir porque a política (por definição) permite solicitações que chegam em 1.º de junho de 2010. O permitir da Política B substitui a negação padrão da Política A1 e, assim, a solicitação é permitida.

No Cenário 2, a Política A2 retorna uma negação explícita, conforme descrito anteriormente nesta seção. Novamente, a Política B retorna um permitir. A negação explícita da Política A2 substitui o permitir da Política B e, assim, a solicitação é negada.