As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Gerenciar chaves de IAM acesso
Criar uma chave de acesso
Para criar uma chave de IAM acesso, chame o IamClient’s
createAccessKey
método com um CreateAccessKeyRequest
nota
Você deve definir a região como AWS_GLOBAL para que as IamClient
chamadas funcionem porque IAM é um serviço global.
Importações
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 ""; }
Veja o exemplo completo
Listar chaves de acesso
Para listar as chaves de acesso de um determinado usuário, crie um ListAccessKeysRequest
IamClient’s
listAccessKeys
método.
nota
Se você não fornecer um nome de usuáriolistAccessKeys
, ele tentará listar as chaves de acesso associadas à pessoa Conta da AWS que assinou a solicitação.
Importações
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); } }
Os resultados de listAccessKeys
são paginados (com um máximo de 100 registros por chamada). Você pode chamar isTruncated
o ListAccessKeysResponse
marker
no ListAccessKeysResponse
e use-o ao criar uma nova solicitação. Use essa nova solicitação na próxima invocação de listAccessKeys
.
Veja o exemplo completo
Recuperar a hora do uso mais recente de uma chave de acesso
Para saber a hora em que uma chave de acesso foi usada pela última vez, chame o IamClient’s
getAccessKeyLastUsed
método com o ID da chave de acesso (que pode ser passado usando um GetAccessKeyLastUsedRequest
Em seguida, você pode usar o GetAccessKeyLastUsedResponse
Importações
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"); }
Veja o exemplo completo
Ativar ou desativar chaves de acesso
Você pode ativar ou desativar uma chave de acesso criando um UpdateAccessKeyRequest
status
IamClient’s
updateAccessKey
método.
Importações
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); } }
Veja o exemplo completo
Excluir uma chave de acesso
Para excluir permanentemente uma chave de acesso, chame o IamClient’s
deleteKey
método, fornecendo a ele o ID DeleteAccessKeyRequest
nota
Depois de excluída, uma chave não poderá mais ser recuperada ou usada. Para desativar temporariamente uma chave para que ela possa ser ativada novamente mais tarde, use o updateAccessKeymétodo em vez disso.
Importações
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); } }
Veja o exemplo completo
Mais informações
-
CreateAccessKeyna Referência da IAM API
-
ListAccessKeysna Referência da IAM API
-
GetAccessKeyLastUsedna Referência da IAM API
-
UpdateAccessKeyna Referência da IAM API
-
DeleteAccessKeyna Referência da IAM API