투케이2K

171. (Aws/Amazon) [AWS IAM] AWS IAM GetAccountAuthorizationDetails 사용자, 그룹, 역할, 정책 연결 관계 조회 API 정리 본문

Aws (Amazon)

171. (Aws/Amazon) [AWS IAM] AWS IAM GetAccountAuthorizationDetails 사용자, 그룹, 역할, 정책 연결 관계 조회 API 정리

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

[개발 환경 설정]

개발 환경 : Aws / Amazon Web Services

 

[설명 정리]

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

- 인프라 : Aws / Amazon Web Services


- 기술 구분 : Aws / IAM / GetAccountAuthorizationDetails


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

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

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

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

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






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

1. AWS GetAccountAuthorizationDetails 는 계정 내 IAM 사용자, 그룹, 역할, 정책(고객/AWS 관리형)과 이들 간의 연결 관계를 한 번에 조회하는 API 입니다.

  >> 흔히 권한 구성의 스냅샷을 얻을 때 사용합니다


2. AWS GetAccountAuthorizationDetails API 결과는 페이지네이션되며, Filter, MaxItems, Marker 파라미터로 범위와 페이지를 제어합니다.


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

  // ✅ Request 전문 예시
  https://iam.amazonaws.com/?Action=GetAccountAuthorizationDetails
  &Version=2010-05-08
  &AUTHPARAMS

  핵심 파라미터 : Filter (User | Role | Group 등 타입 선택 조회) / MaxItems (1–1000 사이, 페이지당 최대 항목 수 지정) / Marker (이전 응답의 Marker 값을 그대로 넣어 다음 페이지를 가져옴)


  // ✅ Response 전문 예시
  {
    "ResponseMetadata": {
      "RequestId": "a3052f06-044b-4e13-9eb0-6269ae6ae1f5"
    },
    "UserDetailList": [
      {
        "Path": "/",
        "UserName": "2k@TWOK.com",
        "UserId": "AI..DK",
        "Arn": "arn:aws:iam::123456789012:user/2k@TWOK.com",
        "CreateDate": "2024-11-13T05:29:02.000Z",
        "UserPolicyList": [],
        "GroupList": [
          "console-access"
        ],
        "AttachedManagedPolicies": [
          {
            "PolicyName": "IAMUserChangePassword",
            "PolicyArn": "arn:aws:iam::aws:policy/IAMUserChangePassword"
          }
        ],
        "Tags": [
          {
            "Key": "Department",
            "Value": "IT개발팀"
          }
        ]
      }                        
    ],
    "GroupDetailList": [],
    "RoleDetailList": [
      {
        "Path": "/aws-service-role/eks.amazonaws.com/",
        "RoleName": "AWSServiceRoleForAmazonEKS",
        "RoleId": "AR..MT",
        "Arn": "arn:aws:iam::123456789012:role/aws-service-role/eks.amazonaws.com/AWSServiceRoleForAmazonEKS",
        "CreateDate": "2024-12-06T05:24:27.000Z",
        "AssumeRolePolicyDocument": "%7B%..%7D",
        "InstanceProfileList": [],
        "RolePolicyList": [],
        "AttachedManagedPolicies": [
          {
            "PolicyName": "AmazonEKSServiceRolePolicy",
            "PolicyArn": "arn:aws:iam::aws:policy/aws-service-role/AmazonEKSServiceRolePolicy"
          }
        ],
        "Tags": [],
        "RoleLastUsed": {
          "LastUsedDate": "2026-01-11T23:22:35.000Z",
          "Region": "ap-northeast-2"
        }                        
      }
    ],
    "Policies": [],
    "IsTruncated": true,
    "Marker": "RAEKYi..BEh4ES0QVPra1"
  }


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

  >> AccessDenied : 권한 부족 : iam:GetAccountAuthorizationDetails 권한 추가
  
  >> UnauthorizedOperation : 같은 맥락의 권한 부족 : 동일
  
  >> ThrottlingException : 호출 요청 초과 : 백오프, 호출 분산, 빈도 제어

  >> InternalFailure : AWS 내부 오류 : 재시도, AWS 지원 문의

  >> InvalidMarker : 잘못된 페이지 네비게이션 마커 사용 : 응답 제공 마커 사용

  >> ValidationException : 잘못된 입력 파라미터 사용 : 파라미터 값 검증(범위/타입 확인)


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

  <!-- [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();


  // -----------------------------------------
  // [요청 파라미터 생성]
  // -----------------------------------------
  var param = {
    MaxItems: 100 // 조회 개수
  };


  // -----------------------------------------
  // [GetAccountAuthorizationDetails AWS 계정 내 IAM 사용자, 그룹, 역할, 정책(고객/AWS 관리형)과 이들 간의 연결 관계 조회 수행]
  // -----------------------------------------
  // AWS 참고 사이트 : https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html
  // -----------------------------------------
  aws.getAccountAuthorizationDetails( params , function(err, data) { 
    if (err) {
      console.error("[getAccountAuthorizationDetails] : [Error] : ", err);

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

  });

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






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

[로그인 계정] 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