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
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
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
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
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
Más información
-
Descripción general de políticas de IAM en la Guía del usuario de IAM.
-
Referencia de políticas de AWS IAM en la Guía del usuario de IAM.
-
CreatePolicy en la referencia de la API de IAM
-
GetPolicy en la referencia de la API de IAM
-
AttachRolePolicy en la referencia de la API de IAM
-
ListAttachedRolePolicies en la referencia de la API de IAM
-
DetachRolePolicy en la referencia de la API de IAM