Utilisation des stratégies IAM - AWS SDK for Java 1. x

Nous avons annoncé la sortie prochaine end-of-support de AWS SDK for Java (v1). Nous vous recommandons de migrer vers la AWS SDK for Java version v2. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des stratégies IAM

Création d'une politique

Pour créer une nouvelle stratégie, fournissez le nom de la stratégie et un document de stratégie au format JSON dans un.CreatePolicyRequestvers le client AmazonIdentityManagementClientcreatePolicyméthode.

Importations

import com.amazonaws.services.identitymanagement.AmazonIdentityManagement; import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder; import com.amazonaws.services.identitymanagement.model.CreatePolicyRequest; import com.amazonaws.services.identitymanagement.model.CreatePolicyResult;

Code

final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); CreatePolicyRequest request = new CreatePolicyRequest() .withPolicyName(policy_name) .withPolicyDocument(POLICY_DOCUMENT); CreatePolicyResult response = iam.createPolicy(request);

Les documents de stratégie IAM sont des chaînes JSON avec un.syntaxe bien documentée. Voici un exemple qui fournit l'accès permettant d'adresser des demandes particulières à DynamoDB.

public static final String POLICY_DOCUMENT = "{" + " \"Version\": \"2012-10-17\"," + " \"Statement\": [" + " {" + " \"Effect\": \"Allow\"," + " \"Action\": \"logs:CreateLogGroup\"," + " \"Resource\": \"%s\"" + " }," + " {" + " \"Effect\": \"Allow\"," + " \"Action\": [" + " \"dynamodb:DeleteItem\"," + " \"dynamodb:GetItem\"," + " \"dynamodb:PutItem\"," + " \"dynamodb:Scan\"," + " \"dynamodb:UpdateItem\"" + " ]," + " \"Resource\": \"RESOURCE_ARN\"" + " }" + " ]" + "}";

Veuillez consulter l'exemple complet sur GitHub.

Obtention d'une stratégie

Pour récupérer une stratégie existante, appelez legetPolicy, fournissant le nom ARN de la stratégie dans un.GetPolicyRequestobjet.

Importations

import com.amazonaws.services.identitymanagement.AmazonIdentityManagement; import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder; import com.amazonaws.services.identitymanagement.model.GetPolicyRequest; import com.amazonaws.services.identitymanagement.model.GetPolicyResult;

Code

final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); GetPolicyRequest request = new GetPolicyRequest() .withPolicyArn(policy_arn); GetPolicyResult response = iam.getPolicy(request);

Veuillez consulter l'exemple complet sur GitHub.

Attachement d'une stratégie de rôle

Vous pouvez attacher une stratégie à un IAM (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html[role]) en appelant leattachRolePolicy, en lui fournissant le nom du rôle et l'ARN de la stratégie dans un.AttachRolePolicyRequest.

Importations

import com.amazonaws.services.identitymanagement.AmazonIdentityManagement; import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder; import com.amazonaws.services.identitymanagement.model.AttachRolePolicyRequest; import com.amazonaws.services.identitymanagement.model.AttachedPolicy;

Code

final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); AttachRolePolicyRequest attach_request = new AttachRolePolicyRequest() .withRoleName(role_name) .withPolicyArn(POLICY_ARN); iam.attachRolePolicy(attach_request);

Veuillez consulter l'exemple complet sur GitHub.

Affichage d'une liste de stratégies de rôle attachées

Répertoriez les stratégies attachées sur un rôle en appelant le.listAttachedRolePoliciesméthode. Cette méthode accepte un objet ListAttachedRolePoliciesRequest contenant le nom du rôle pour lequel répertorier les stratégies.

Appelez getAttachedPolicies sur l'objet ListAttachedRolePoliciesResult renvoyé pour obtenir la liste des stratégies attachées. Les résultats peuvent être tronqués. Si la méthode getIsTruncated de l'objet ListAttachedRolePoliciesResult renvoie true, appelez la méthode setMarker de l'objet ListAttachedRolePoliciesRequest et utilisez-la pour appeler à nouveau listAttachedRolePolicies afin d'obtenir le lot suivant de résultats.

Importations

import com.amazonaws.services.identitymanagement.AmazonIdentityManagement; import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder; import com.amazonaws.services.identitymanagement.model.ListAttachedRolePoliciesRequest; import com.amazonaws.services.identitymanagement.model.ListAttachedRolePoliciesResult; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors;

Code

final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); ListAttachedRolePoliciesRequest request = new ListAttachedRolePoliciesRequest() .withRoleName(role_name); List<AttachedPolicy> matching_policies = new ArrayList<>(); boolean done = false; while(!done) { ListAttachedRolePoliciesResult response = iam.listAttachedRolePolicies(request); matching_policies.addAll( response.getAttachedPolicies() .stream() .filter(p -> p.getPolicyName().equals(role_name)) .collect(Collectors.toList())); if(!response.getIsTruncated()) { done = true; } request.setMarker(response.getMarker()); }

Veuillez consulter l'exemple complet sur GitHub.

Détachement d'une stratégie de rôle

Pour détacher une stratégie d'un rôle, appelez le.detachRolePolicy, en lui fournissant le nom du rôle et l'ARN de la stratégie dans un.DetachRolePolicyRequest.

Importations

import com.amazonaws.services.identitymanagement.AmazonIdentityManagement; import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder; import com.amazonaws.services.identitymanagement.model.DetachRolePolicyRequest; import com.amazonaws.services.identitymanagement.model.DetachRolePolicyResult;

Code

final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); DetachRolePolicyRequest request = new DetachRolePolicyRequest() .withRoleName(role_name) .withPolicyArn(policy_arn); DetachRolePolicyResult response = iam.detachRolePolicy(request);

Veuillez consulter l'exemple complet sur GitHub.

En savoir plus