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á.
Alterações da API do Compilador de Políticas do IAM da versão 1 para a versão 2
Este tópico detalha as alterações na API do Compilador de Políticas do IAM da versão 1 (v1) para a versão 2 (v2).
Alterações de alto nível
| Alteração | v1 | v2 |
|---|---|---|
|
Dependências do Maven |
|
|
| Nome do pacote | com.amazonaws.auth.policy |
software.amazon.awssdk.policybuilder.iam |
| Nomes da classe |
1 Versão mais recente
Alterações de API
| Configuração | v1 | v2 |
|---|---|---|
Instanciar uma política |
|
|
|
Definir ID |
|
|
|
Definir versão |
N/A: usa a versão padrão de 2012-10-17 |
|
|
Criar declaração |
|
|
|
Definir declaração |
|
|
Diferenças na construção de uma declaração
Ações
v1
O SDK v1 tem tipos de enum para ações de serviço que representam elementos Action em uma declaração de política. Os tipos de enum a seguir são alguns exemplos.
O exemplo a seguir mostra a constante SendMessage para SQSActions.
Action action = SQSActions.SendMessage;
Você não pode especificar um elemento NotAction para uma declaração na v1.
v2
Na v2, a interface IamActioncreate conforme mostrado no código a seguir.
IamAction action = IamAction.create("sqs:SendMessage");
Você pode especificar um NotAction para uma declaração com v2, como mostra o código a seguir.
IamAction action = IamAction.create("sqs:SendMessage"); IamStatement.builder().addNotAction(action);
Condições
v1
Para representar as condições da declaração, o SDK v1 usa subclasses de Condition.
Cada subclasse Condition define um tipo enum de comparação para ajudar a definir a condição. Por exemplo, veja a seguir uma comparação de string do tipo diferente de para uma condição.
Condition condition = new StringCondition(StringComparisonType.StringNotLike, "key", "value");
v2
Na v2, você cria uma condição para uma declaração de política usando IamCondition e fornece um IamConditionOperator, que contém enums para todos os tipos.
IamCondition condition = IamCondition.create(IamConditionOperator.STRING_NOT_LIKE, "key", "value");
Recursos
v1
O elemento Resource de uma declaração de política é representado pela classe Resource do SDK. Você fornece o ARN como uma string no construtor. As subclasses a seguir fornecem construtores de conveniência.
Na v1, você pode especificar um elemento NotResource para um Resource chamando o método withIsNotType conforme mostrado na declaração a seguir.
Resource resource = new Resource("arn:aws:s3:::amzn-s3-demo-bucket").withIsNotType(true);
v2
Na v2, você cria um elemento Resource passando um ARN para o método IamResource.create.
IamResource resource = IamResource.create("arn:aws:s3:::amzn-s3-demo-bucket");
Um IamResource pode ser definido como o elemento NotResource, conforme mostrado no trecho a seguir.
IamResource resource = IamResource.create("arn:aws:s3:::amzn-s3-demo-bucket"); IamStatement.builder().addNotResource(resource);
IamResource.ALL representa todos os recursos.
Entidades principais
v1
O SDK v1 oferece as seguintes classes Principal para representar tipos de entidades principais que incluem todos os membros:
-
AllUsers -
AllServices -
AllWebProviders -
All
Você não pode adicionar um elemento NotPrincipal a uma declaração.
v2
Na v2, IamPrincipal.ALL representa todas as entidades principais:
Para representar todos os membros em outros tipos de entidades principais, use as classes IamPrincipalType ao criar um IamPrincipal.
-
IamPrincipal.create(IamPrincipalType.AWS,"*")para todos os usuários. -
IamPrincipal.create(IamPrincipalType.SERVICE,"*")para todos os serviços. -
IamPrincipal.create(IamPrincipalType.FEDERATED,"*")para todos os provedores da web. -
IamPrincipal.create(IamPrincipalType.CANONICAL_USER,"*")para todos os usuários canônicos.
Você pode usar o método addNotPrincipal para representar um elemento NotPrincipal ao criar uma declaração de política, conforme mostrado na declaração a seguir.
IamPrincipal principal = IamPrincipal.create(IamPrincipalType.AWS, "arn:aws:iam::444455556666:root"); IamStatement.builder().addNotPrincipal(principal);