IAM 액세스 키 관리 - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

IAM 액세스 키 관리

액세스 키 생성

IAM 액세스 키를 생성하려면 CreateAccessKeyRequest객체를 사용하여 IamClient’s createAccessKey 메서드를 호출하십시오.

참고

글로벌 IAM 서비스이므로 IamClient 호출이 제대로 작동하려면 지역을 AWS_GLOBAL로 설정해야 합니다.

가져오기

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;

코드

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

전체 예제를 참조하십시오. GitHub

액세스 키 나열

특정 사용자의 액세스 키를 나열하려면 키를 나열할 사용자 이름이 포함된 ListAccessKeysRequest객체를 만든 다음 IamClient’s listAccessKeys 메서드에 전달하십시오.

참고

에 사용자 이름을 제공하지 않으면 요청에 서명한 사람과 관련된 액세스 키를 나열하려고 시도합니다. listAccessKeys AWS 계정

가져오기

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;

코드

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

listAccessKeys의 결과가 페이징됩니다(호출당 기본 최대 100개 레코드). 반환된 ListAccessKeysResponse객체를 isTruncated 호출하여 쿼리에서 반환된 결과 수가 사용 가능한 것보다 적은지 확인할 수 있습니다. 그런 후 marker에서 ListAccessKeysResponse를 호출해 새 요청 생성 때 사용합니다. 다음 listAccessKeys 호출에 이 새 요청을 사용합니다.

에서 전체 예제를 참조하십시오 GitHub.

액세스 키의 마지막 사용 시간 가져오기

액세스 키가 마지막으로 사용된 시간을 확인하려면 액세스 키의 ID (GetAccessKeyLastUsedRequest객체를 사용하여 전달할 수 있음) 를 사용하여 IamClient’s getAccessKeyLastUsed 메서드를 호출합니다.

그런 다음 반환된 GetAccessKeyLastUsedResponse객체를 사용하여 키의 마지막 사용 시간을 검색할 수 있습니다.

가져오기

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;

코드

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

전체 예제는 을 참조하십시오 GitHub.

액세스 키 활성화 또는 비활성화

객체를 생성하고 액세스 키 ID, 사용자 이름 (선택 사항) status, 원하는 정보를 제공한 다음 요청 UpdateAccessKeyRequest객체를 IamClient’s updateAccessKey 메서드에 전달하여 액세스 키를 활성화하거나 비활성화할 수 있습니다.

가져오기

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;

코드

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

전체 예제를 참조하십시오. GitHub

액세스 키 삭제

액세스 키를 영구적으로 삭제하려면 액세스 키의 ID와 사용자 이름을 DeleteAccessKeyRequest포함하는 IamClient’s deleteKey 메서드를 호출합니다.

참고

키는 삭제하고 나면 더 이상 가져오거나 사용할 수 없습니다. 나중에 다시 활성화할 수 있도록 키를 일시적으로 비활성화하려면 updateAccessKey메서드를 대신 사용하십시오.

가져오기

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;

코드

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

전체 예제를 참조하십시오. GitHub

추가 정보