Uso de políticas de IAM - AWS SDK for Java 1.x

La AWS SDK for Java 1.x se alcanzó end-of-support el 31 de diciembre de 2025. Le recomendamos que migre a AWS SDK for Java 2.x para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

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.

Uso de políticas de IAM

Creación de una política

Para crear una nueva política, proporcione el nombre de la política y un documento de política en formato JSON en un objeto CreatePolicyRequest al método createPolicy de AmazonIdentityManagementClient.

Importaciones

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;

Código de

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

Los documentos de política de IAM; son cadenas JSON con una sintaxis bien documentada. Este es un ejemplo que proporciona acceso para realizar determinadas solicitudes a 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\"" + " }" + " ]" + "}";

Consulte el ejemplo completo en GitHub.

Obtención de una política

Para recuperar una política existente, llame al método getPolicy de AmazonIdentityManagementClient, proporcionando el ARN de la política en un objeto GetPolicyRequest.

Importaciones

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;

Código de

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

Consulte el ejemplo completo en GitHub.

Asociar una política de rol

Puede adjuntar una política a un IAM http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html[rol] llamando al attachRolePolicy método de AmazonIdentityManagementClient y proporcionándole el nombre del rol y el ARN de la política en una AttachRolePolicyRequest.

Importaciones

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;

Código de

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

Consulte el ejemplo completo en GitHub.

Mostrar las políticas de rol asociadas

Enumerar las políticas asociadas a un rol llamando al método listAttachedRolePolicies de AmazonIdentityManagementClient. Este método toma un objeto ListAttachedRolePoliciesRequest que contiene el nombre del rol para el que se desea mostrar las políticas.

Llame a getAttachedPolicies en el objeto ListAttachedRolePoliciesResult devuelto para obtener la lista de políticas asociadas. Los resultados pueden aparecer truncados; si el método ListAttachedRolePoliciesResult del objeto getIsTruncated devuelve true, llame al método ListAttachedRolePoliciesRequest del objeto setMarker y úselo para llamar a listAttachedRolePolicies de nuevo para obtener el siguiente lote de resultados.

Importaciones

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;

Código de

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()); }

Consulte el ejemplo completo en GitHub.

Desvincular una política de rol

Para desvincular una política de un rol, llame al método detachRolePolicy de AmazonIdentityManagementClient proporcionando el nombre de rol y el ARN de política en un objeto DetachRolePolicyRequest.

Importaciones

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;

Código de

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

Consulte el ejemplo completo en GitHub.

Más información