Verwalten von IAM Zugriffsschlüsseln - AWS SDK for Java 2.x

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwalten von IAM Zugriffsschlüsseln

Erstellen eines Zugriffsschlüssels

Um einen IAM Zugriffsschlüssel zu erstellen, rufen Sie die -IamClient’screateAccessKeyMethode mit einem -CreateAccessKeyRequestObjekt auf.

Anmerkung

Sie müssen die Region auf AWS_GLOBAL setzen, damit IamClient Aufrufe funktionieren, da ein globaler Service IAM ist.

Importe

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

Sehen Sie sich das vollständige Beispiel auf an GitHub.

Auflisten von Zugriffsschlüsseln

Um die Zugriffsschlüssel für einen bestimmten Benutzer aufzulisten, erstellen Sie ein ListAccessKeysRequest Objekt, das den Benutzernamen enthält, für den Schlüssel aufgelistet werden sollen, und übergeben Sie es an die IamClient’s listAccessKeys Methode .

Anmerkung

Wenn Sie keinen Benutzernamen für angebenlistAccessKeys, wird versucht, die Zugriffsschlüssel aufzulisten, die dem zugeordnet sind AWS-Konto , der die Anforderung signiert hat.

Importe

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

Die Ergebnisse von listAccessKeys sind seitenweise angeordnet (mit einem Standardhöchstwert von 100 Datensätzen pro Aufruf). Sie können isTruncated für das zurückgegebene ListAccessKeysResponse Objekt aufrufen, um festzustellen, ob die Abfrage weniger Ergebnisse zurückgegeben hat und verfügbar ist. Falls ja, rufen Sie marker für ListAccessKeysResponse auf und verwenden es beim Erstellen einer neuen Anforderung. Verwenden Sie diese neue Anforderung im nächsten Aufruf von listAccessKeys.

Sehen Sie sich das vollständige Beispiel auf an GitHub.

Abrufen der letzten Nutzungszeit eines Zugriffsschlüssels

Um die Zeit zu erhalten, zu der ein Zugriffsschlüssel zuletzt verwendet wurde, rufen Sie die IamClient’s getAccessKeyLastUsed Methode mit der ID des Zugriffsschlüssels auf (die mit einem -GetAccessKeyLastUsedRequestObjekt übergeben werden kann.

Anschließend können Sie das zurückgegebene GetAccessKeyLastUsedResponse Objekt verwenden, um die letzte Nutzungszeit des Schlüssels abzurufen.

Importe

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

Sehen Sie sich das vollständige Beispiel auf an GitHub.

Aktivieren oder Deaktivieren von Zugriffsschlüsseln

Sie können einen Zugriffsschlüssel aktivieren oder deaktivieren, indem Sie ein UpdateAccessKeyRequest Objekt erstellen, die Zugriffsschlüssel-ID, optional den Benutzernamen und die gewünschte angeben und dann das statusAnforderungsobjekt an die IamClient’s updateAccessKey Methode übergeben.

Importe

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

Sehen Sie sich das vollständige Beispiel auf an GitHub.

Löschen eines Zugriffsschlüssels

Um einen Zugriffsschlüssel dauerhaft zu löschen, rufen Sie die -IamClient’sdeleteKeyMethode auf und stellen Sie ihr eine mit der ID und dem Benutzernamen des Zugriffsschlüssels DeleteAccessKeyRequest zur Verfügung.

Anmerkung

Nach dem Löschen können Schlüssel nicht mehr abgerufen oder verwendet werden. Um einen Schlüssel vorübergehend zu deaktivieren, damit er später wieder aktiviert werden kann, verwenden Sie stattdessen die -updateAccessKeyMethode.

Importe

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

Sehen Sie sich das vollständige Beispiel auf an GitHub.

Weitere Informationen