Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Modifiche nell'API IAM Policy Builder dalla versione 1 alla versione 2
Questo argomento descrive in dettaglio le modifiche all'API IAM Policy Builder dalla versione 1 (v1) alla versione 2 (v2).
Modifiche di alto livello
| Modifica | v1 | v2 |
|---|---|---|
|
Dipendenze da Maven |
|
|
| Nome pacchetto | com.amazonaws.auth.policy |
software.amazon.awssdk.policybuilder.iam |
| Nomi delle classi |
1 Ultima versione.
Modifiche alle API
| Impostazione | v1 | v2 |
|---|---|---|
Crea un'istanza di una politica |
|
|
|
Imposta id |
|
|
|
Impostare la versione |
N/A: utilizza la versione predefinita di 2012-10-17 |
|
|
Crea una dichiarazione |
|
|
|
Imposta dichiarazione |
|
|
Differenze nella creazione di una dichiarazione
Operazioni
v1
L'SDK v1 dispone enumdi tipi di azioni di servizio che rappresentano Action elementi di una dichiarazione politica. I seguenti enum tipi sono alcuni esempi.
L'esempio seguente mostra la SendMessage costante forSQSActions.
Action action = SQSActions.SendMessage;
Non è possibile specificare un NotAction elemento in un'istruzione in v1.
v2
Nella v2, l'IamActioncreate metodo come illustrato nel codice seguente.
IamAction action = IamAction.create("sqs:SendMessage");
È possibile specificare un'istruzione NotAction for a con v2, come illustrato nel codice seguente.
IamAction action = IamAction.create("sqs:SendMessage"); IamStatement.builder().addNotAction(action);
Condizioni
v1
Per rappresentare le condizioni delle dichiarazioni, l'SDK v1 utilizza sottoclassi di. Condition
Ogni Condition sottoclasse definisce un enum tipo di confronto per aiutare a definire la condizione. Ad esempio, quanto segue mostra un confronto di stringhe non simile per una condizione.
Condition condition = new StringCondition(StringComparisonType.StringNotLike, "key", "value");
v2
Nella v2, si crea una condizione per una dichiarazione politica utilizzando IamCondition e fornendo unIamConditionOperator, che contiene enums per tutti i tipi.
IamCondition condition = IamCondition.create(IamConditionOperator.STRING_NOT_LIKE, "key", "value");
Risorse
v1
L'Resourceelemento di una dichiarazione politica è rappresentato dalla classe dell'SDK. Resource L'ARN viene fornito come stringa nel costruttore. Le seguenti sottoclassi forniscono costruttori di convenienza.
Nella v1, è possibile specificare un NotResource elemento per a Resource chiamando il withIsNotType metodo come illustrato nella seguente istruzione.
Resource resource = new Resource("arn:aws:s3:::mybucket").withIsNotType(true);
v2
Nella v2, si crea un Resource elemento passando un ARN al IamResource.create metodo.
IamResource resource = IamResource.create("arn:aws:s3:::mybucket");
An IamResource può essere impostato come NotResourceelemento come mostrato nel frammento seguente.
IamResource resource = IamResource.create("arn:aws:s3:::mybucket"); IamStatement.builder().addNotResource(resource);
IamResource.ALLrappresenta tutte le risorse.
Principali
v1
L'SDK v1 offre le seguenti Principal classi per rappresentare i tipi di principali che includono tutti i membri:
-
AllUsers -
AllServices -
AllWebProviders -
All
Non è possibile aggiungere un NotPrincipal elemento a un'istruzione.
v2
Nella v2, IamPrincipal.ALL rappresenta tutti i principali:
Per rappresentare tutti i membri in altri tipi di principali, usa IamPrincipalType le classi quando crei un. IamPrincipal
-
IamPrincipal.create(IamPrincipalType.AWS,"*")per tutti gli utenti. -
IamPrincipal.create(IamPrincipalType.SERVICE,"*")per tutti i servizi. -
IamPrincipal.create(IamPrincipalType.FEDERATED,"*")per tutti i provider web. -
IamPrincipal.create(IamPrincipalType.CANONICAL_USER,"*")per tutti gli utenti canonici.
È possibile utilizzare il addNotPrincipal metodo per rappresentare un NotPrincipal elemento quando si crea una dichiarazione politica, come illustrato nella seguente dichiarazione.
IamPrincipal principal = IamPrincipal.create(IamPrincipalType.AWS, "arn:aws:iam::444455556666:root"); IamStatement.builder().addNotPrincipal(principal);