Gérer les clés IAM d'accès - AWS SDK for Java 2.x

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gérer les clés IAM d'accès

Créer une clé d'accès

Pour créer une clé d' IAM accès, appelez la IamClient’s createAccessKey méthode avec un CreateAccessKeyRequestobjet.

Note

Vous devez définir la région sur AWS_GLOBALpour que les IamClient appels fonctionnent, car il IAM s'agit d'un service mondial.

Importations

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;

Code

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 ""; }

Consultez l'exemple complet sur GitHub.

Répertorier des clés d'accès

Pour répertorier les clés d'accès d'un utilisateur donné, créez un ListAccessKeysRequestobjet contenant le nom d'utilisateur pour lequel vous souhaitez répertorier les clés et transmettez-le à la IamClient’s listAccessKeys méthode.

Note

Si vous ne fournissez pas de nom d'utilisateur àlistAccessKeys, il tentera de répertorier les clés d'accès associées au Compte AWS signataire de la demande.

Importations

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;

Code

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); } }

Les résultats de listAccessKeys sont paginés par défaut (avec un maximum de 100 enregistrements par appel). Vous pouvez faire appel isTruncated à l'ListAccessKeysResponseobjet renvoyé pour voir si la requête a renvoyé moins de résultats que ceux disponibles. Si tel est le cas, appelez marker sur l'objet ListAccessKeysResponse et utilise-la lors de la création d'une nouvelle demande. Utilisez cette nouvelle demande dans le prochain appel de listAccessKeys.

Consultez l'exemple complet sur GitHub.

Extraire l'heure de la dernière utilisation d'une clé d'accès

Pour connaître l'heure à laquelle une clé d'accès a été utilisée pour la dernière fois, appelez la IamClient’s getAccessKeyLastUsed méthode avec l'ID de la clé d'accès (qui peut être transmis à l'aide d'un GetAccessKeyLastUsedRequestobjet).

Vous pouvez ensuite utiliser l'GetAccessKeyLastUsedResponseobjet renvoyé pour récupérer la date de dernière utilisation de la clé.

Importations

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;

Code

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"); }

Consultez l'exemple complet sur GitHub.

Activer ou désactiver des clés d'accès

Vous pouvez activer ou désactiver une clé d'accès en créant un UpdateAccessKeyRequestobjet, en fournissant l'identifiant de la clé d'accès, éventuellement le nom d'utilisateur et le nom souhaité status, puis en transmettant l'objet de demande à la IamClient’s updateAccessKey méthode.

Importations

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;

Code

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); } }

Consultez l'exemple complet sur GitHub.

Supprimer une clé d'accès

Pour supprimer définitivement une clé d'accès, appelez la IamClient’s deleteKey méthode en lui fournissant un DeleteAccessKeyRequestcontenant l'identifiant et le nom d'utilisateur de la clé d'accès.

Note

Une fois supprimée, une clé ne peut plus être récupérée ou utilisée. Pour désactiver temporairement une clé afin qu'elle puisse être réactivée ultérieurement, utilisez plutôt la updateAccessKeyméthode.

Importations

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;

Code

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); } }

Consultez l'exemple complet sur GitHub.

En savoir plus