Gerenciar chaves de IAM acesso - AWS SDK for Java 2.x

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 CreateAccessKeyRequestobjeto.

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 em GitHub.

Listar chaves de acesso

Para listar as chaves de acesso de um determinado usuário, crie um ListAccessKeysRequestobjeto que contenha o nome do usuário para o qual listar as chaves e passe-o para o 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 ListAccessKeysResponseobjeto retornado para ver se a consulta retornou menos resultados do que os disponíveis. Se esse for o caso, chame 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 em GitHub.

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 GetAccessKeyLastUsedRequestobjeto).

Em seguida, você pode usar o GetAccessKeyLastUsedResponseobjeto retornado para recuperar a última hora usada pela chave.

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 em GitHub.

Ativar ou desativar chaves de acesso

Você pode ativar ou desativar uma chave de acesso criando um UpdateAccessKeyRequestobjeto, fornecendo o ID da chave de acesso, opcionalmente o nome do usuário e o nome desejado e, em seguida status, passando o objeto de solicitação para o 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 em GitHub.

Excluir uma chave de acesso

Para excluir permanentemente uma chave de acesso, chame o IamClient’s deleteKey método, fornecendo a ele o ID DeleteAccessKeyRequeste o nome de usuário da chave de acesso.

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 em GitHub.

Mais informações