투케이2K

177. (Aws/Amazon) [AWS IAM] AWS IAM GetUser 특정 IAM 사용자 상세 정보 조회 수행 API 정리 본문

Aws (Amazon)

177. (Aws/Amazon) [AWS IAM] AWS IAM GetUser 특정 IAM 사용자 상세 정보 조회 수행 API 정리

투케이2K 2026. 2. 3. 20:46
728x90

[개발 환경 설정]

개발 환경 : Aws / Amazon Web Services

 

[설명 정리]

// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------

- 인프라 : Aws / Amazon Web Services


- 기술 구분 : Aws / IAM / GetUser


- 사전) AWS IAM 자격 증명 설명 정리 : 

  >> AWS IAM 아이엠 계정 은 일부 AWS 서비스 및 리소스에 대한 액세스 권한을 가지고 있는 자격 증명입니다

  >> IAM 아이엠 계정 은 ROOT 계정 혹은 다른 IAM 계정으로부터 권한을 부여 받을 수 있으며, 주어진 권한 내의 작업만 할 수 있습니다

  >> IAM 아이엠 계정에서 할당 된 권한 외의 작업이 필요한 경우 ROOT 계정으로부터 추가 액세스 접근 권한을 부여 받아야 사용할 수 있습니다

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------

1. AWS GetUser 는 특정 IAM 사용자의 상세 정보를 조회하는 API 입니다.


2. AWS GetUser API 호출을 통해 사용자 생성 날짜 , Path , 고유 ID(UserId) , ARN , 패스워드 및 액세스키 사용 정보(일부 시점의 비정확성에 대한 경고 포함) 를 확인할 수 있습니다


3. AWS GetUser API 호출 Request , Response 전문 예시 : 

  // ✅ Request 전문 예시
  https://iam.amazonaws.com/?Action=GetUser
  &UserName=Bob // ✔️ 핵심 파라미터 : UserName : 조회하려는 IAM 사용자 이름으로 지정하지 않으면 요청을 서명한 Access Key의 소유자(IAM User)를 자동으로 조회합니다.
  &Version=2010-05-08
  &AUTHPARAMS  


  // ✅ Response 전문 예시
  <GetUserResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">
    <GetUserResult>
        <User>
        <UserId>AIDACKCEVSQ6C2EXAMPLE</UserId>
        <Path>/division_abc/subdivision_xyz/</Path>
        <UserName>Bob</UserName>
        <Arn>arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/Bob</Arn>
        <CreateDate>2013-10-02T17:01:44Z</CreateDate>
        <PasswordLastUsed>2014-10-10T14:37:51Z</PasswordLastUsed>
        </User>
    </GetUserResult>
    <ResponseMetadata>
        <RequestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</RequestId>
    </ResponseMetadata>
  </GetUserResponse>


4. AWS GetUser 호출 주요 에러 코드 정리 : 

  >> NoSuchEntity : 조회하려는 사용자(UserName)가 존재하지 않을 때 발생 혹은 현재 자격증명이 IAM User가 아닐 때(Role 기반일 때) 발생 가능

  >> ServiceFailure : AWS 내부 오류로 인해 요청을 처리할 수 없는 경우
                
  >> AccessDenied : 권한 없음 – 별도 공통 오류
                
  >> InvalidClientTokenId : 자격증명 문제

  >> SignatureDoesNotMatch : 서명 오류


5. AWS GetUser 호출 자바스크립트 예시 코드 : 

  <!-- [CDN 주소 설정] -->
  <script src="https://sdk.amazonaws.com/js/aws-sdk-2.1416.0.min.js"></script>


  // [전역 변수 선언]
  const accessKey = 'AK..A6'; 
  const secretKey = 'mP..5J';


  // -----------------------------------------
  // [AWS.config 지정]
  // -----------------------------------------       
  AWS.config.update({              
    accessKeyId: accessKey, 
    secretAccessKey: secretKey
  });


  // -----------------------------------------
  // [AWS 객체 생성]
  // -----------------------------------------
  const aws = new AWS.IAM();


  // -----------------------------------------
  // [요청 파라미터 생성]
  // -----------------------------------------
  /*
  const param = { // ✅ Request_1
    UserName: 'twok2k' // ✅ IAM 사용자 이름 : 파라미터 전송 생략 시 Access Key ID를 기반으로 IAM이 사용자 이름을 암묵적으로 결정합니다
  };
  // */

  const param = { // ✅ Request_2 
  
  };


  // -----------------------------------------
  // [GetUser] : 특정 IAM 사용자의 상세 정보를 조회 수행

  // -----------------------------------------
  // AWS 참고 사이트 : https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html
  // -----------------------------------------
  // 리전 무관 : 모든 리전에서 동일하게 동작.
  // -----------------------------------------
  aws.getUser( params , function(err, data) { 
    if (err) {
      console.error("[getUser] : [Error] : ", err);

    } else {
      console.log("[getUser] : [Success] : ", JSON.stringify(data));

        // ---------------------------------------------
        // ✅ [로그 출력 예시 첨부]
        // ---------------------------------------------
        /*
        {
            "ResponseMetadata": {
            "RequestId": "9029..375e"
            },
            "User": {
            "Path": "/",
            "UserName": "twok2k@test.com-CLI",
            "UserId": "AI..2S",
            "Arn": "arn:aws:iam::123456789012:user/twok2k@test.com-CLI",
            "CreateDate": "2025-02-18T01:09:27.000Z",
            "Tags": [
                {
                "Key": "AK..A6",
                "Value": "twok2k@test.com-CLI-accesskey"
                },
                {
                "Key": "Name",
                "Value": "투케이 책임"
                }
            ]
            }
        }
        */
        // ---------------------------------------------
    }

  });

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[자바스크립트 AWS GetCallerIdentity 사용해 IAM 계정 자격 증명 정보 유효성 검증]

https://kkh0977.tistory.com/8600

https://blog.naver.com/kkh0977/224167527899


[로그인 계정] ROOT 루트 계정 로그인과 IAM 아이엠 계정 로그인 차이 설명 정리

https://kkh0977.tistory.com/7618

https://blog.naver.com/kkh0977/223731955897?trackingCode=blog_bloghome_searchlist


[Aws 사이트 : SimulatePrincipalPolicy 설명 정리]

https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html


[AWS] [Lambda] 런타임 Python 3.13 - boto3 모듈 사용해 AWS STS 임시 정보 호출 람다 생성

https://blog.naver.com/kkh0977/223962739399?trackingCode=blog_bloghome_searchlist


[자바스크립트 AWS STS 임시 자격 증명 사용해 S3 Get PreSignedUrl 프리 사인 URL 주소 생성]

https://kkh0977.tistory.com/8151

https://blog.naver.com/kkh0977/223938740405

// --------------------------------------------------------------------------------------
 
728x90
반응형
Comments