기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 ""; }
전체
액세스 키 나열
특정 사용자의 액세스 키를 나열하려면 키를 나열할 사용자 이름이 포함된 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
호출에 이 새 요청을 사용합니다.
에서 전체 예제를
액세스 키의 마지막 사용 시간 가져오기
액세스 키가 마지막으로 사용된 시간을 확인하려면 액세스 키의 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"); }
전체 예제는
액세스 키 활성화 또는 비활성화
객체를 생성하고 액세스 키 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); } }
전체 예제를
액세스 키 삭제
액세스 키를 영구적으로 삭제하려면 액세스 키의 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); } }
전체 예제를
추가 정보
-
CreateAccessKey IAM API 레퍼런스에서
-
ListAccessKeys IAM API 레퍼런스에서
-
GetAccessKeyLastUsed IAM API 레퍼런스에서
-
UpdateAccessKey IAM API 레퍼런스에서
-
DeleteAccessKey IAM API 레퍼런스에서