Amazon Web Services 한국 블로그

IAM 액세스 분석기 업데이트: 사용되지 않는 액세스 찾기, 배포 전 정책 확인

오늘 AWS Identity and Access Management(IAM) Access Analyzer를 위한 두 가지 새로운 기능을 출시합니다.

미사용 액세스 분석기 – 역할 및 사용자를 지속적으로 모니터링하여 부여되었지만 실제로 사용되지는 않은 권한을 찾는 새로운 분석기입니다. 중앙 보안 팀은 대시보드 보기를 활용하여 사용하지 않은 권한, 역할 및 IAM 사용자를 검토하여 가장 많은 혜택을 받을 수 있는 계정을 찾을 수 있습니다.

사용자 지정 정책 검사 – 새로 작성된 정책이 의도하지 않은 권한을 추가로 부여하지 않는지 확인합니다. CI/CD 파이프라인과 사용자 지정 정책 도구에 자동화된 정책 검토를 추가하여 IAM 정책을 더 엄격하게 제어하고 AWS 애플리케이션을 개발에서 프로덕션으로 이전하는 프로세스를 가속화할 수 있습니다.

오늘 출시되는 서비스를 살펴보겠습니다!

미사용 액세스 분석기
외부 액세스를 모니터링하는 분석기를 이미 만들 수 있습니다. 오늘 출시를 통해 지나치게 관대하거나 사용이 중단된 액세스 권한을 찾는 기능을 만들 수 있습니다. 여기에는 미사용 IAM 역할, IAM 사용자의 미사용 액세스 키, IAM 사용자의 미사용 암호, 활성 IAM 역할 및 사용자의 미사용 서비스 및 작업이 포함됩니다.

조직 전체 또는 계정별 분석기에서 생성한 조사 결과를 검토한 후 필요하지 않은 권한을 제거하여 조치를 취할 수 있습니다. AWS Management Console, CLI 또는 API에서 분석기를 생성하고 조사 결과를 분석할 수 있습니다. 먼저 IAM 콘솔부터 살펴보겠습니다. 왼쪽 탐색 모음에서 Analyzers and settings(분석기 및 설정)를 클릭합니다.

현재 사용 중인 분석기를 볼 수 있습니다(이 경우에는 없음). 계속하려면 분석기 생성을 클릭합니다.

Unused access analysis(미사용 액세스 분석)를 지정하고 기본 추적 기간인 90일을 그대로 두고 조직 대신 제 계정을 확인하기로 선택한 다음 분석기 생성을 클릭합니다.

제 분석기가 생성되었으니 잠시 후에 결과를 확인합니다. 조사 결과는 1분 이내에 제공되었지만 이는 상황에 따라 달라질 수 있습니다. 몇 가지 조사 결과는 다음과 같습니다.

보시다시피, 미사용 IAM 역할과 권한이 많이 있습니다(분명히 이것은 나쁜 역할 모델입니다). 조사 결과를 클릭하여 자세히 알아볼 수 있습니다.

이 역할이 필요한 경우 아카이브를 클릭하여 활성 조사 결과 목록에서 해당 역할을 제거할 수 있습니다. 비슷한 조사 결과에 대해 동일한 작업을 수행하는 아카이브 규칙을 만들 수도 있습니다.

외부 액세스 분석기는 비슷한 방식으로 작동하며, 액세스 분석기는 처음 사용하고 추가 권한을 찾아 제거할 준비가 되었을 때 시작하기에 완벽합니다.

대시보드는 모든 활성 조사 결과에 대한 개요를 제공합니다.

분석기를 생성하고 조직을 신뢰 영역으로 지정하면 활성 조사 결과 수가 가장 많은 계정을 보여주는 목록도 볼 수 있습니다.

이 기능은 명령줄에서도 사용할 수 있습니다. 다음과 같이 새 분석기를 만들 수 있습니다.

$ aws access-analyzer create-analyzer --type ACCOUNT_UNUSED_ACCESS \
  --analyzer-name OneWeek \
  --configuration '{"unusedAccess" : {"unusedAccessAge" : 90}}'
----------------------------------------------------------------------------
|                              CreateAnalyzer                              |
+-----+--------------------------------------------------------------------+
|  arn|  arn:aws:access-analyzer:us-east-1:348414629041:analyzer/OneWeek   |
+-----+--------------------------------------------------------------------+

조사 결과를 나열할 수 있습니다. 제가 원하는 것은 시작할 실제 리소스 ID입니다.

$  aws access-analyzer list-findings-v2 \
  --analyzer-arn  arn:aws:access-analyzer:us-east-1:123456789012:analyzer/OneWeek 
  --output json |
 jq -r '.findings[] | .resource'

arn:aws:iam::123456789012:role/MobileHub_Service_Role
arn:aws:iam::123456789012:role/EKSClusterRole
arn:aws:iam::123456789012:role/service-role/AWSDataSyncS3BucketAccess-jbarr-data
arn:aws:iam::123456789012:role/rds-monitoring-role
arn:aws:iam::123456789012:role/IsengardRoleForDependencyAssuranceIamAnalyzer
arn:aws:iam::123456789012:role/service-role/s3crr_role_for_rep-src_to_rep-dest
arn:aws:iam::123456789012:role/service-role/AWSDeepRacerServiceRole
...

ID별로 조사 결과를 아카이빙할 수 있습니다.

$ aws access-analyzer update-findings  \
  --analyzer-arn arn:aws:access-analyzer:us-east-1:123456789012:analyzer/OneWeek 
  --status ARCHIVED --ids "f0492061-8638-48ac-b91a-f0583cc839bf"

그리고 IAM Access Analyzer API를 사용하여 동일한 작업을 수행할 수 있습니다.

이 기능은 매월 분석된 IAM 역할 수를 기준으로 요금이 책정되며, IAM을 사용할 수 있는 모든 AWS 리전에서 사용할 수 있습니다.

사용자 지정 정책 검사
이제 배포 전에 IAM 정책이 보안 표준을 준수하는지 검증하고 정책에 대한 비준수 업데이트를 사전에 탐지할 수 있습니다. 이를 통해 혁신을 더 빠르게 진행하고, 앱을 개발 단계에서 프로덕션 단계로 더 효율적으로 이전할 수 있으며, 변경 사항에 사용자의 의도가 반영되었다는 것을 알 수 있습니다.

allow-all-ssm 정책부터 시작해 보겠습니다.

설명을 위해 S3 액세스를 추가하도록 정책을 편집했습니다.

그런 다음 Check for new access(새 액세스 확인)를 클릭하고 요금이 청구될 예정인지 확인한 다음 Check policy:(정책 확인:)를 클릭합니다.

자동 추론은 정책을 확인하고 새 액세스를 활성화했음을 알려줍니다. 예상된 것이라면 다음을 클릭하여 계속 진행합니다. 그렇지 않으면 정책 변경 사항을 다시 생각해 봅니다.

이는 매우 단순하고 인위적인 예시이지만, 이 작업이 여러분의 보안 작업에 얼마나 유용하고 가치가 있는지 아실 것이라고 확신합니다. CLI(check-no-new-access) 및 API(CheckNoNewAccess)에서도 액세스할 수 있습니다.

CI/CD 파이프라인, AWS CloudFormation 후크 및 사용자 지정 정책 도구에서 사용하도록 설계된 또 다른 명령 및 함수도 있습니다. heck-access-not-grantedCheckAccessNotGranted는 정책 문서와 s3:Get*과 같은 권한을 수락하고 정책이 해당 권한을 부여하지 않는지 확인합니다. 예를 들어 이를 사용하여 Security Hub를 비활성화하도록 지정하는 정책을 배포할 수 없도록 할 수 있습니다. 이렇게 하면 정책이 조직의 보안 표준을 준수한다는 확신을 갖고 개발에서 프로덕션으로 전환할 수 있습니다.

이 기능은 매월 수행되는 검사 횟수를 기준으로 요금이 책정되며, 모든 AWS 상용 및 AWS GovCloud 리전에서 사용할 수 있습니다.

자세히 알아보기
AWS Identity and Access Management(IAM) Access Analyzer

Jeff;