Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cambios en el IAM Policy Builder API de la versión 1 a la versión 2
En este tema se detallan los cambios en el IAM Policy Builder API desde la versión 1 (v1) a la versión 2 (v2).
Cambios de alto nivel
Cambio | v1 | v2 |
---|---|---|
dependencias Maven |
|
|
Package name | com.amazonaws.auth.policy |
software.amazon.awssdk.policybuilder.iam |
Nombres de clase |
1 Última versión
APIcambios
Opción | v1 | v2 |
---|---|---|
Instanciar una política |
|
|
Establecer una identificación |
|
|
Establecer versión |
N/A: usa la versión predeterminada de 2012-10-17 |
|
Crear declaración |
|
|
Establecer declaración |
|
|
Diferencias en la construcción de una declaración
Acciones
v1
La versión 1 SDK tiene enum
tipos de acciones de servicio que representan Action
elementos de una declaración de política. Los siguientes enum
tipos son algunos ejemplos.
En el siguiente ejemplo se muestra la SendMessage
constante deSQSActions
.
Action action = SQSActions.SendMessage;
No se puede especificar un NotAction
elemento en una sentencia en la v1.
v2
En la versión 2, la IamActioncreate
método, tal y como se muestra en el código siguiente.
IamAction action = IamAction.create("sqs:SendMessage");
Puede especificar a NotAction
para una sentencia con v2, como se muestra en el código siguiente.
IamAction action = IamAction.create("sqs:SendMessage"); IamStatement.builder().addNotAction(action);
Condiciones
v1
Para representar las condiciones de la declaración, la v1 SDK usa subclases de Condition
.
Cada Condition
subclase define un enum
tipo de comparación para ayudar a definir la condición. Por ejemplo, a continuación se muestra una comparación de cadenas diferentes de una condición.
Condition condition = new StringCondition(StringComparisonType.StringNotLike, "key", "value");
v2
En la versión 2, se crea una condición para una declaración de política utilizando IamCondition
y proporcionando unaIamConditionOperator
, que contiene todos enums
los tipos.
IamCondition condition = IamCondition.create(IamConditionOperator.STRING_NOT_LIKE, "key", "value");
Recursos
v1
El Resource
elemento de una declaración de política está representado por SDK la Resource
clase. Se proporciona ARN como una cadena en el constructor. Las siguientes subclases proporcionan constructores de conveniencia.
En la versión 1, puede especificar un NotResource
elemento para a Resource
llamando al withIsNotType
método, tal como se muestra en la siguiente declaración.
Resource resource = new Resource("arn:aws:s3:::mybucket").withIsNotType(true);
v2
En la versión 2, se crea un Resource
elemento pasando una ARN al IamResource.create
método.
IamResource resource = IamResource.create("arn:aws:s3:::mybucket");
IamResource
Se puede establecer un NotResource
elemento como elemento, tal y como se muestra en el siguiente fragmento.
IamResource resource = IamResource.create("arn:aws:s3:::mybucket"); IamStatement.builder().addNotResource(resource);
IamResource.ALL
representa todos los recursos.
Entidades principales
v1
La versión 1 SDK ofrece las siguientes Principal
clases para representar los tipos de directores que incluyen a todos los miembros:
-
AllUsers
-
AllServices
-
AllWebProviders
-
All
No se puede añadir un NotPrincipal
elemento a una declaración.
v2
En la versión 2, IamPrincipal.ALL
representa todos los principios:
Para representar a todos los miembros de otros tipos de principios, utilice las IamPrincipalType
clases al crear un. IamPrincipal
-
IamPrincipal.create(IamPrincipalType.AWS,"*")
para todos los usuarios. -
IamPrincipal.create(IamPrincipalType.SERVICE,"*")
para todos los servicios. -
IamPrincipal.create(IamPrincipalType.FEDERATED,"*")
para todos los proveedores web. -
IamPrincipal.create(IamPrincipalType.CANONICAL_USER,"*")
para todos los usuarios canónicos.
Puede utilizar el addNotPrincipal
método para representar un NotPrincipal
elemento al crear una declaración de política, como se muestra en la siguiente declaración.
IamPrincipal principal = IamPrincipal.create(IamPrincipalType.AWS, "arn:aws:iam::444455556666:root"); IamStatement.builder().addNotPrincipal(principal);