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 CreateAccessKeyRequest
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
Mostrar claves de acceso
Para enumerar las claves de acceso de un usuario determinado, cree un ListAccessKeysRequest
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
ListAccessKeysResponse
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
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 GetAccessKeyLastUsedRequest
A continuación, puedes usar el GetAccessKeyLastUsedResponse
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
Activar o desactivar claves de acceso
Puede activar o desactivar una clave de acceso creando un UpdateAccessKeyRequest
status
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
Eliminación de una clave de acceso
Para eliminar permanentemente una clave de acceso, llame al IamClient’s
deleteKey
método y suministre una DeleteAccessKeyRequest
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
Más información
-
CreateAccessKeyen la referencia IAM de la API
-
ListAccessKeysen la referencia IAM de la API
-
GetAccessKeyLastUseden la referencia IAM de la API
-
UpdateAccessKeyen la referencia IAM de la API
-
DeleteAccessKeyen la referencia IAM de la API