AWS 계정용 자격 증명 보고서 생성

AWS 계정용 자격 증명 보고서 생성

계정의 모든 사용자와 비밀번호, 액세스 키, MFA 기기를 포함한 각 사용자의 다양한 자격 증명 상태를 나열하는 *자격 증명 보고서(credential report)*를 생성하고 다운로드할 수 있어요. 자격 증명 보고서는 AWS Management Console, AWS SDK와 명령줄 도구, 또는 IAM API에서 얻을 수 있어요.

출처: 문서

본문

참고 IAM 자격 증명 보고서에는 다음 IAM 관리 자격 증명만 포함됩니다: 비밀번호, 사용자당 처음 두 개의 액세스 키, MFA 기기, X.509 서명 인증서. 보고서에는 서비스별 자격 증명(CodeCommit 비밀번호, Amazon Bedrock 장기 API 키, Amazon CloudWatch Logs 장기 API 키 등)이나 처음 두 개를 제외한 다른 사용자 액세스 키는 포함되지 않아요. 전체 자격 증명 가시성을 위해서는 ListServiceSpecificCredentials 및 ListAccessKeys API를 사용하세요.

자격 증명 보고서를 사용해 감사와 규정 준수 노력을 지원할 수 있어요. 비밀번호 및 액세스 키 업데이트 같은 자격 증명 수명주기 요구사항의 효과를 감사하는 데 보고서를 사용할 수 있어요. 보고서를 외부 감사자에게 제공하거나, 감사자가 직접 보고서를 다운로드할 수 있도록 권한을 부여할 수도 있어요.

자격 증명 보고서는 4시간에 한 번씩 생성할 수 있어요. 보고서를 요청하면 IAM은 먼저 해당 AWS 계정에 대한 보고서가 지난 4시간 내에 생성되었는지 확인합니다. 그렇다면 가장 최근 보고서가 다운로드됩니다. 계정의 가장 최근 보고서가 4시간보다 오래되었거나 이전 보고서가 없으면 IAM은 새 보고서를 생성하고 다운로드합니다.

이번 강의에서 다룰 내용은 다음과 같아요.

  • 필수 권한(Required permissions)
  • 보고서 형식 이해(Understanding the report format)
  • 자격 증명 보고서 가져오기 (콘솔)
  • 자격 증명 보고서 가져오기 (AWS CLI)
  • 자격 증명 보고서 가져오기 (AWS API)

필수 권한

보고서를 만들고 다운로드하는 데 다음 권한이 필요해요.

  • 자격 증명 보고서를 만들려면: iam:GenerateCredentialReport
  • 보고서를 다운로드하려면: iam:GetCredentialReport

보고서 형식 이해

자격 증명 보고서는 쉼표로 구분된 값(CSV) 파일 형식입니다. 일반 스프레드시트 소프트웨어로 CSV 파일을 열어 분석하거나, CSV 파일을 프로그래매틱 방식으로 소비해 사용자 지정 분석을 수행하는 애플리케이션을 만들 수 있어요.

CSV 파일에는 다음 열이 포함됩니다.

user 사용자의 친근한 이름.

arn 사용자의 Amazon Resource Name(ARN). ARN에 대한 자세한 내용은 IAM ARN 문서를 참고하세요.

user_creation_time ISO 8601 날짜-시간 형식으로 된 사용자 생성 날짜와 시간.

password_enabled 사용자에게 비밀번호가 있으면 이 값은 TRUE입니다. 그 외에는 FALSE입니다. 조직의 일부로 생성된 새 멤버 계정은 기본적으로 루트 사용자 자격 증명이 없으므로 이 값이 FALSE입니다.

password_last_used AWS 계정 루트 사용자 또는 사용자의 비밀번호가 마지막으로 AWS 웹사이트 로그인에 사용된 날짜와 시간이며, ISO 8601 날짜-시간 형식입니다. 사용자의 마지막 로그인 시간을 캡처하는 AWS 웹사이트는 AWS Management Console, AWS Discussion Forums, AWS Marketplace입니다. 비밀번호가 5분 간격으로 두 번 이상 사용되면 첫 번째 사용만 이 필드에 기록됩니다.

  • 다음 경우에 이 필드 값은 no_information입니다: 사용자의 비밀번호가 한 번도 사용되지 않은 경우. 또는 비밀번호와 연결된 로그인 데이터가 없는 경우(IAM이 2014년 10월 20일부터 이 정보 추적을 시작한 후 비밀번호를 사용하지 않은 경우 등).
  • 사용자에게 비밀번호가 없으면 이 필드 값은 N/A(해당 없음)입니다.

중요 서비스 문제로 인해 비밀번호 마지막 사용 데이터에 2018년 5월 3일 22:50 PDT부터 2018년 5월 23일 14:08 PDT 사이의 비밀번호 사용이 포함되지 않습니다. 이는 IAM 콘솔에 표시되는 마지막 로그인 날짜, IAM 자격 증명 보고서의 비밀번호 마지막 사용 날짜, GetUser API 작업이 반환하는 값에 영향을 미칩니다. 사용자가 영향을 받는 기간에 로그인했다면 반환되는 비밀번호 마지막 사용 날짜는 2018년 5월 3일 이전에 사용자가 마지막으로 로그인한 날짜입니다. 2018년 5월 23일 14:08 PDT 이후에 로그인한 사용자의 경우 반환되는 비밀번호 마지막 사용 날짜가 정확합니다. 비밀번호 마지막 사용 정보로 삭제할 사용하지 않는 자격 증명을 식별할 때(예: 최근 90일 동안 AWS에 로그인하지 않은 사용자 삭제) 2018년 5월 23일 이후의 날짜를 포함하도록 평가 창을 조정할 것을 권장합니다. 또는 사용자가 액세스 키로 AWS에 프로그래매틱 방식으로 접근한다면, 액세스 키 마지막 사용 정보는 모든 날짜에 대해 정확하므로 참고할 수 있습니다.

password_last_changed ISO 8601 날짜-시간 형식으로 된 사용자 비밀번호가 마지막으로 설정된 날짜와 시간. 사용자에게 비밀번호가 없으면 이 필드 값은 N/A(해당 없음)입니다.

password_next_rotation 계정에 비밀번호 회전을 요구하는 비밀번호 정책이 있는 경우, 이 필드는 ISO 8601 날짜-시간 형식으로 사용자가 새 비밀번호를 설정해야 하는 날짜와 시간을 포함합니다. AWS 계정(루트)의 값은 항상 not_supported입니다.

mfa_active 사용자에게 다중 인증(MFA) 기기가 활성화되어 있으면 이 값은 TRUE입니다. 그 외에는 FALSE입니다.

access_key_1_active 사용자에게 액세스 키가 있고 액세스 키 상태가 Active이면 이 값은 TRUE입니다. 그 외에는 FALSE입니다. 계정 루트 사용자와 IAM 사용자 모두에 적용됩니다.

access_key_1_last_rotated ISO 8601 날짜-시간 형식으로 된 사용자 액세스 키가 생성되었거나 마지막으로 변경된 날짜와 시간. 사용자에게 활성 액세스 키가 없으면 이 필드 값은 N/A(해당 없음)입니다. 계정 루트 사용자와 IAM 사용자 모두에 적용됩니다.

access_key_1_last_used_date ISO 8601 날짜-시간 형식으로 된 사용자 액세스 키가 마지막으로 AWS API 요청 서명에 사용된 날짜와 시간. 액세스 키가 15분 간격으로 두 번 이상 사용되면 첫 번째 사용만 이 필드에 기록됩니다. 계정 루트 사용자와 IAM 사용자 모두에 적용됩니다. 다음 경우에 이 필드 값은 N/A(해당 없음)입니다.

  • 사용자에게 액세스 키가 없는 경우.
  • 액세스 키가 한 번도 사용되지 않은 경우.
  • IAM이 2015년 4월 22일부터 이 정보 추적을 시작한 후 액세스 키가 사용되지 않은 경우.

access_key_1_last_used_region 액세스 키가 마지막으로 사용된 AWS 리전. 액세스 키가 15분 간격으로 두 번 이상 사용되면 첫 번째 사용만 이 필드에 기록됩니다. 계정 루트 사용자와 IAM 사용자 모두에 적용됩니다. 다음 경우에 이 필드 값은 N/A(해당 없음)입니다.

  • 사용자에게 액세스 키가 없는 경우.
  • 액세스 키가 한 번도 사용되지 않은 경우.
  • IAM이 2015년 4월 22일부터 이 정보 추적을 시작하기 전에 액세스 키가 마지막으로 사용된 경우.
  • 마지막 사용 서비스가 Amazon S3처럼 리전에 특화되지 않은 경우.

access_key_1_last_used_service 액세스 키로 마지막으로 접근한 AWS 서비스. 이 필드 값은 서비스의 네임스페이스를 사용합니다 — 예를 들어 Amazon S3는 s3, Amazon EC2는 ec2. 액세스 키가 15분 간격으로 두 번 이상 사용되면 첫 번째 사용만 이 필드에 기록됩니다. 계정 루트 사용자와 IAM 사용자 모두에 적용됩니다. 다음 경우에 이 필드 값은 N/A(해당 없음)입니다.

  • 사용자에게 액세스 키가 없는 경우.
  • 액세스 키가 한 번도 사용되지 않은 경우.
  • IAM이 2015년 4월 22일부터 이 정보 추적을 시작하기 전에 액세스 키가 마지막으로 사용된 경우.

access_key_2_active 사용자에게 두 번째 액세스 키가 있고 두 번째 키 상태가 Active이면 이 값은 TRUE입니다. 그 외에는 FALSE입니다. 계정 루트 사용자와 IAM 사용자 모두에 적용됩니다.

참고 사용자는 액세스 키를 최대 두 개 가질 수 있어, 먼저 키를 업데이트한 다음 이전 키를 삭제해 회전을 더 쉽게 할 수 있어요. 액세스 키 업데이트에 대한 자세한 내용은 액세스 키 업데이트(Update access keys) 문서를 참고하세요.

access_key_2_last_rotated ISO 8601 날짜-시간 형식으로 된 사용자 두 번째 액세스 키가 생성되었거나 마지막으로 변경된 날짜와 시간. 사용자에게 두 번째 활성 액세스 키가 없으면 이 필드 값은 N/A(해당 없음)입니다. 계정 루트 사용자와 IAM 사용자 모두에 적용됩니다.

access_key_2_last_used_date ISO 8601 날짜-시간 형식으로 된 사용자 두 번째 액세스 키가 마지막으로 AWS API 요청 서명에 사용된 날짜와 시간. 액세스 키가 15분 간격으로 두 번 이상 사용되면 첫 번째 사용만 이 필드에 기록됩니다. 계정 루트 사용자와 IAM 사용자 모두에 적용됩니다. 다음 경우에 이 필드 값은 N/A(해당 없음)입니다.

  • 사용자에게 두 번째 액세스 키가 없는 경우.
  • 사용자의 두 번째 액세스 키가 한 번도 사용되지 않은 경우.
  • IAM이 2015년 4월 22일부터 이 정보 추적을 시작하기 전에 사용자의 두 번째 액세스 키가 마지막으로 사용된 경우.

access_key_2_last_used_region 사용자 두 번째 액세스 키가 마지막으로 사용된 AWS 리전. 액세스 키가 15분 간격으로 두 번 이상 사용되면 첫 번째 사용만 이 필드에 기록됩니다. 계정 루트 사용자와 IAM 사용자 모두에 적용됩니다. 다음 경우에 이 필드 값은 N/A(해당 없음)입니다.

  • 사용자에게 두 번째 액세스 키가 없는 경우.
  • 사용자의 두 번째 액세스 키가 한 번도 사용되지 않은 경우.
  • IAM이 2015년 4월 22일부터 이 정보 추적을 시작하기 전에 사용자의 두 번째 액세스 키가 마지막으로 사용된 경우.
  • 마지막 사용 서비스가 Amazon S3처럼 리전에 특화되지 않은 경우.

access_key_2_last_used_service 사용자 두 번째 액세스 키로 마지막으로 접근한 AWS 서비스. 이 필드 값은 서비스의 네임스페이스를 사용합니다 — 예를 들어 Amazon S3는 s3, Amazon EC2는 ec2. 액세스 키가 15분 간격으로 두 번 이상 사용되면 첫 번째 사용만 이 필드에 기록됩니다. 계정 루트 사용자와 IAM 사용자 모두에 적용됩니다. 다음 경우에 이 필드 값은 N/A(해당 없음)입니다.

  • 사용자에게 두 번째 액세스 키가 없는 경우.
  • 사용자의 두 번째 액세스 키가 한 번도 사용되지 않은 경우.
  • IAM이 2015년 4월 22일부터 이 정보 추적을 시작하기 전에 사용자의 두 번째 액세스 키가 마지막으로 사용된 경우.

cert_1_active 사용자에게 X.509 서명 인증서가 있고 그 상태가 Active이면 이 값은 TRUE입니다. 그 외에는 FALSE입니다.

cert_1_last_rotated ISO 8601 날짜-시간 형식으로 된 사용자 서명 인증서가 생성되었거나 마지막으로 변경된 날짜와 시간. 사용자에게 활성 서명 인증서가 없으면 이 필드 값은 N/A(해당 없음)입니다.

cert_2_active 사용자에게 두 번째 X.509 서명 인증서가 있고 그 상태가 Active이면 이 값은 TRUE입니다. 그 외에는 FALSE입니다.

참고 사용자는 X.509 서명 인증서를 최대 두 개까지 가질 수 있어 인증서 회전을 더 쉽게 할 수 있어요.

cert_2_last_rotated ISO 8601 날짜-시간 형식으로 된 사용자 두 번째 서명 인증서가 생성되었거나 마지막으로 변경된 날짜와 시간. 사용자에게 두 번째 활성 서명 인증서가 없으면 이 필드 값은 N/A(해당 없음)입니다.

additional_credentials_info 사용자에게 액세스 키나 인증서가 두 개보다 많으면 이 값은 추가 액세스 키나 인증서의 수와 사용자와 연결된 액세스 키나 인증서를 나열하는 데 사용할 수 있는 작업입니다.

자격 증명 보고서 가져오기 (콘솔)

AWS Management Console을 사용해 자격 증명 보고서를 쉼표로 구분된 값(CSV) 파일로 다운로드할 수 있어요.

자격 증명 보고서 다운로드 (콘솔)

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.
  2. 탐색 창에서 자격 증명 보고서(Credential report) 를 선택합니다.
  3. 보고서 다운로드(Download Report) 를 선택합니다.

자격 증명 보고서 가져오기 (AWS CLI)

자격 증명 보고서 다운로드 (AWS CLI)

  1. 자격 증명 보고서를 생성합니다. AWS는 단일 보고서를 저장합니다. 보고서가 있으면 자격 증명 보고서를 생성할 때 이전 보고서를 덮어씁니다. aws iam generate-credential-report
  2. 마지막으로 생성된 보고서를 봅니다: aws iam get-credential-report

자격 증명 보고서 가져오기 (AWS API)

자격 증명 보고서 다운로드 (AWS API)

  1. 자격 증명 보고서를 생성합니다. AWS는 단일 보고서를 저장합니다. 보고서가 있으면 자격 증명 보고서를 생성할 때 이전 보고서를 덮어씁니다. GenerateCredentialReport
  2. 마지막으로 생성된 보고서를 봅니다: GetCredentialReport

더 알아보기 (Learn more)