Administrar las claves de IAM acceso - AWS SDK for Java 2.x

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.

Administrar las claves de IAM acceso

Creación de una clave de acceso

Para crear una clave de IAM acceso, llama al IamClient’s createAccessKey método con un CreateAccessKeyRequestobjeto.

nota

Debe establecer la región en AWS_GLOBAL para que las IamClient llamadas funcionen, ya que IAM es un servicio global.

Importaciones

import software.amazon.awssdk.services.iam.model.CreateAccessKeyRequest; import software.amazon.awssdk.services.iam.model.CreateAccessKeyResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient; import software.amazon.awssdk.services.iam.model.IamException;

Código

public static String createIAMAccessKey(IamClient iam,String user) { try { CreateAccessKeyRequest request = CreateAccessKeyRequest.builder() .userName(user).build(); CreateAccessKeyResponse response = iam.createAccessKey(request); String keyId = response.accessKey().accessKeyId(); return keyId; } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }

Consulte el ejemplo completo en. GitHub

Mostrar claves de acceso

Para enumerar las claves de acceso de un usuario determinado, cree un ListAccessKeysRequestobjeto que contenga el nombre de usuario del que desee enumerar las claves y páselo al IamClient’s listAccessKeys método.

nota

Si no le proporciona un nombre de usuariolistAccessKeys, intentará enumerar las claves de acceso asociadas a la persona Cuenta de AWS que firmó la solicitud.

Importaciones

import software.amazon.awssdk.services.iam.model.AccessKeyMetadata; import software.amazon.awssdk.services.iam.model.IamException; import software.amazon.awssdk.services.iam.model.ListAccessKeysRequest; import software.amazon.awssdk.services.iam.model.ListAccessKeysResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient;

Código

public static void listKeys( IamClient iam,String userName ){ try { boolean done = false; String newMarker = null; while (!done) { ListAccessKeysResponse response; if(newMarker == null) { ListAccessKeysRequest request = ListAccessKeysRequest.builder() .userName(userName).build(); response = iam.listAccessKeys(request); } else { ListAccessKeysRequest request = ListAccessKeysRequest.builder() .userName(userName) .marker(newMarker).build(); response = iam.listAccessKeys(request); } for (AccessKeyMetadata metadata : response.accessKeyMetadata()) { System.out.format("Retrieved access key %s", metadata.accessKeyId()); } if (!response.isTruncated()) { done = true; } else { newMarker = response.marker(); } } } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Los resultados de listAccessKeys están paginados (con un máximo de 100 registros por llamada). Puede llamar al isTruncated ListAccessKeysResponseobjeto devuelto para comprobar si la consulta arrojó menos resultados de los disponibles. En tal caso, llame a marker en el objeto ListAccessKeysResponse y úselo al crear una nueva solicitud. Utilice esta nueva solicitud en la siguiente invocación de listAccessKeys.

Consulta el ejemplo completo en GitHub.

Recuperar el momento en que se usó por última vez una clave de acceso

Para saber la hora en que se utilizó una clave de acceso por última vez, llame al IamClient’s getAccessKeyLastUsed método con el identificador de la clave de acceso (que se puede transferir mediante un GetAccessKeyLastUsedRequestobjeto).

A continuación, puedes usar el GetAccessKeyLastUsedResponseobjeto devuelto para recuperar la última vez que se usó la clave.

Importaciones

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient; import software.amazon.awssdk.services.iam.model.GetAccessKeyLastUsedRequest; import software.amazon.awssdk.services.iam.model.GetAccessKeyLastUsedResponse; import software.amazon.awssdk.services.iam.model.IamException;

Código

public static void getAccessKeyLastUsed(IamClient iam, String accessId ){ try { GetAccessKeyLastUsedRequest request = GetAccessKeyLastUsedRequest.builder() .accessKeyId(accessId).build(); GetAccessKeyLastUsedResponse response = iam.getAccessKeyLastUsed(request); System.out.println("Access key was last used at: " + response.accessKeyLastUsed().lastUsedDate()); } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } System.out.println("Done"); }

Consulta el ejemplo completo en GitHub.

Activar o desactivar claves de acceso

Puede activar o desactivar una clave de acceso creando un UpdateAccessKeyRequestobjeto, proporcionando el ID de la clave de acceso y, si lo desea, el nombre de usuario y el que desee y status, a continuación, pasando el objeto de solicitud al IamClient’s updateAccessKey método.

Importaciones

import software.amazon.awssdk.services.iam.model.IamException; import software.amazon.awssdk.services.iam.model.StatusType; import software.amazon.awssdk.services.iam.model.UpdateAccessKeyRequest; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient;

Código

public static void updateKey(IamClient iam, String username, String accessId, String status ) { try { if (status.toLowerCase().equalsIgnoreCase("active")) { statusType = StatusType.ACTIVE; } else if (status.toLowerCase().equalsIgnoreCase("inactive")) { statusType = StatusType.INACTIVE; } else { statusType = StatusType.UNKNOWN_TO_SDK_VERSION; } UpdateAccessKeyRequest request = UpdateAccessKeyRequest.builder() .accessKeyId(accessId) .userName(username) .status(statusType) .build(); iam.updateAccessKey(request); System.out.printf( "Successfully updated the status of access key %s to" + "status %s for user %s", accessId, status, username); } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Consulte el ejemplo completo en. GitHub

Eliminación de una clave de acceso

Para eliminar permanentemente una clave de acceso, llame al IamClient’s deleteKey método y suministre una DeleteAccessKeyRequestque contenga el ID y el nombre de usuario de la clave de acceso.

nota

Una vez eliminada una clave, ya no se puede recuperar ni utilizar. Para desactivar temporalmente una clave para poder volver a activarla más adelante, utilice el updateAccessKeymétodo en su lugar.

Importaciones

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient; import software.amazon.awssdk.services.iam.model.DeleteAccessKeyRequest; import software.amazon.awssdk.services.iam.model.IamException;

Código

public static void deleteKey(IamClient iam ,String username, String accessKey ) { try { DeleteAccessKeyRequest request = DeleteAccessKeyRequest.builder() .accessKeyId(accessKey) .userName(username) .build(); iam.deleteAccessKey(request); System.out.println("Successfully deleted access key " + accessKey + " from user " + username); } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Consulte el ejemplo completo en. GitHub

Más información