IAM Access Analyzer 결과(finding)의 작동 방식 이해하기
IAM Access Analyzer 결과(finding)의 작동 방식 이해하기
이 주제는 IAM Access Analyzer에서 사용되는 개념과 용어를 설명해, IAM Access Analyzer가 AWS 리소스에 대한 접근을 어떻게 모니터링하는지 익힐 수 있게 도와줍니다.
출처: 문서
본문
외부 접근 결과
외부 접근 결과는 신뢰 구역(zone of trust) 밖으로 공유되는 리소스의 각 인스턴스에 대해 한 번만 생성됩니다. 리소스 기반 정책이 수정될 때마다 IAM Access Analyzer는 그 정책을 분석합니다. 업데이트된 정책이 이미 결과에서 식별된 리소스를 공유하되 권한·조건이 다르다면, 해당 리소스 공유 인스턴스에 대해 새 결과가 생성됩니다. Resource control policy(RCP) 제한에 영향을 주는 리소스 제어 정책의 변경도 새 결과를 생성합니다. IAM Access Analyzer는 선언적 정책(declarative policies)으로 수립된 접근 제어 구성도 평가합니다. 첫 번째 결과의 접근이 제거되면 그 결과는 Resolved 상태로 업데이트됩니다.
모든 결과의 상태는 보관(archive)하거나 결과를 생성한 접근을 제거할 때까지 Active로 유지됩니다. 접근을 제거하면 결과 상태가 Resolved로 업데이트됩니다.
참고 — 정책 수정 후 IAM Access Analyzer가 리소스를 분석하고 외부 접근 결과를 업데이트하는 데 최대 30분이 걸릴 수 있어요. Resource control policy(RCP) 변경은 결과에 보고된 리소스의 재스캔을 트리거하지 않습니다. IAM Access Analyzer는 24시간 이내의 다음 주기적 스캔 중에 새 정책·업데이트된 정책을 분석합니다.
IAM Access Analyzer가 외부 접근 결과를 생성하는 방법
IAM Access Analyzer는 Zelkova라는 기술로 IAM 정책을 분석하고 리소스에 대한 외부 접근을 식별합니다. Zelkova는 IAM 정책을 동등한 논리 명제로 변환하고, 범용·전문 논리 솔버(만족 가능성 모듈 이론, satisfiability modulo theories) 모음을 실행합니다. IAM Access Analyzer는 정책 내용에 따라 허용되는 접근 유형을 특성화하기 위해 점점 더 구체적인 쿼리로 Zelkova를 정책에 반복 적용합니다. 만족 가능성 모듈 이론에 대한 자세한 내용은 Satisfiability Modulo Theories를 참고하세요.
외부 접근 분석기의 경우 IAM Access Analyzer는 접근 로그를 검사해 외부 엔터티가 실제로 신뢰 구역 내 리소스에 접근했는지 판단하지 않습니다. 대신 리소스 기반 정책이 외부 엔터티의 접근을 허용하면, 그 엔터티가 실제로 리소스에 접근했는지와 무관하게 결과를 생성합니다.
또한 IAM Access Analyzer는 판단 시 외부 계정의 상태를 고려하지 않습니다. 계정 111122223333이 여러분의 Amazon S3 버킷에 접근할 수 있다고 표시해도, 그 계정의 사용자·역할·서비스 제어 정책(SCP) 또는 기타 관련 구성에 대한 정보는 없어요. 이는 IAM Access Analyzer가 다른 계정의 소유자를 알지 못하기 때문인데, 고객 개인정보 보호를 위한 것입니다. 또한 현재 사용할 수 있는 활성 주체가 없어도 잠재적 외부 접근을 아는 것이 중요하므로 보안을 위한 것이기도 해요.
IAM Access Analyzer는 외부 사용자가 직접 영향을 줄 수 없거나 인증에 중요하게 작용하는 특정 IAM 조건 키만 고려합니다. IAM Access Analyzer가 고려하는 조건 키 예시는 IAM Access Analyzer 필터 키를 참고하세요.
IAM Access Analyzer는 현재 AWS 서비스 주체나 내부 서비스 계정에서 오는 결과를 보고하지 않습니다. 특정 정책 명령문이 외부 엔터티에 접근을 부여하는지 완전히 판단할 수 없는 드문 경우에는 거짓 양성(false positive) 결과를 선언하는 쪽으로 기울어요. 이는 IAM Access Analyzer가 계정의 리소스 공유에 대한 포괄적 보기를 제공하고 거짓 음성을 최소화하도록 설계되었기 때문입니다.
내부 접근 결과
내부 접근 분석을 사용하려면 먼저 모니터링할 특정 리소스를 선택해 분석기를 구성해야 합니다. 구성되면 조직·계정 안의 주체(IAM 사용자·역할)가 선택한 리소스에 접근할 때 내부 접근 결과가 생성됩니다. 분석기가 지정된 리소스를 스캔하고 리소스에 접근하는 주체를 식별하면 다음 스캔 때 새 결과가 생성됩니다. 업데이트된 정책이 이미 결과에서 식별된 주체를 허용하되 권한·조건이 다르다면, 해당 주체·리소스 인스턴스에 대해 새 결과가 생성됩니다. 이 업데이트된 정책은 리소스 기반 정책, 자격 증명 기반 정책, 서비스 제어 정책(SCP), 또는 리소스 제어 정책(RCP)일 수 있어요. IAM Access Analyzer는 선언적 정책으로 수립된 접근 제어 구성도 평가합니다.
참고 — 내부 접근 결과는 ListFindingsV2 API 작업으로만 사용할 수 있습니다.
IAM Access Analyzer가 내부 접근 결과를 생성하는 방법
내부 접근을 분석하려면 리소스에 대한 내부 접근 결과용 별도 분석기를 만들어야 합니다. 이미 외부 접근 결과나 미사용 접근 결과를 생성하는 분석기를 만들었어도 마찬가지예요.
내부 접근 분석기를 만든 후 IAM Access Analyzer는 지정된 계정·조직 내의 모든 리소스 기반 정책, 자격 증명 기반 정책, 서비스 제어 정책(SCP), 리소스 제어 정책(RCP), 권한 경계를 평가합니다.
선택한 리소스에 전용된 내부 접근 분석기를 만들면 다음을 식별할 수 있어요.
- 조직·계정 안의 주체가 선택한 리소스에 접근할 수 있는 시기
- 적용 가능한 모든 정책의 교집합을 기준으로 주체에게 허용된 총 유효 권한
- 주체가 자격 증명 정책과 리소스 정책의 조합으로 접근을 얻는 복잡한 접근 경로
참고 — IAM Access Analyzer는 70,000개가 넘는 주체(IAM 사용자·역할 합산)를 포함하는 조직에 대해서는 내부 접근 결과를 생성할 수 없습니다.
미사용 접근 결과
미사용 접근 결과는 분석기 생성 시 지정한 일수 기준으로 선택한 계정·조직 내 IAM 엔터티(주체)에 대해 생성됩니다. 다음 조건 중 하나가 충족되면 분석기가 엔터티를 스캔할 때 새 결과가 생성돼요.
- 역할이 지정된 일수 동안 비활성인 경우
- 미사용 권한, 미사용 사용자 암호, 또는 미사용 사용자 액세스 키가 지정된 일수를 초과한 경우
참고 — 미사용 접근 결과는 ListFindingsV2 API 작업으로만 사용할 수 있습니다.
IAM Access Analyzer가 미사용 접근 결과를 생성하는 방법
미사용 접근을 분석하려면 역할에 대한 미사용 접근 결과용 별도 분석기를 만들어야 합니다. 이미 리소스에 대한 외부·내부 접근 결과를 생성하는 분석기를 만들었어도 마찬가지예요.
미사용 접근 분석기를 만든 후 IAM Access Analyzer는 접근 활동을 검토해 미사용 접근을 식별합니다. IAM Access Analyzer는 AWS 조직·계정 전반의 모든 IAM 사용자, IAM 역할(서비스 역할 포함), 사용자 액세스 키, 사용자 암호의 마지막 접근(last accessed) 정보를 조사합니다. 이를 통해 미사용 접근을 식별할 수 있어요.
참고 — 서비스 연결 역할은 AWS 서비스에 연결되고 서비스가 소유하는 특별한 유형의 서비스 역할입니다. 서비스 연결 역할은 미사용 접근 분석기로 분석되지 않습니다.
활성 IAM 역할·사용자의 경우 IAM Access Analyzer는 IAM 서비스·액션의 마지막 접근 정보를 사용해 미사용 권한을 식별합니다. 이를 통해 AWS 조직·계정 수준에서 검토 프로세스를 확장할 수 있어요. 개별 역할에 대한 더 깊은 조사에는 액션 마지막 접근 정보를 사용할 수도 있습니다. 이는 어떤 특정 권한이 활용되지 않고 있는지 더 세밀한 인사이트를 제공합니다.
미사용 접근에 전용된 분석기를 만들면 AWS 환경 전반의 미사용 접근을 포괄적으로 검토·식별할 수 있으며, 기존 외부 접근 분석기가 생성한 결과를 보완합니다.