IAM Access Analyzer가 지원하는 외부·내부 접근 리소스 유형
IAM Access Analyzer가 지원하는 외부·내부 접근 리소스 유형
외부·내부 접근 분석기의 경우 IAM Access Analyzer는 IAM Access Analyzer를 활성화한 리전의 AWS 리소스에 적용된 리소스 기반 정책을 분석합니다. 리소스 기반 정책만 분석한다는 점을 기억하세요. 각 리소스 유형에 대해 IAM Access Analyzer가 결과를 생성하는 방법은 해당 리소스 유형 정보를 검토하세요.
출처: 문서
본문
참고 — 나열된 지원 리소스 유형은 외부·내부 접근 분석기용입니다. 내부 접근 분석기는 외부 접근 분석기가 지원하는 모든 리소스 유형을 지원하지 않습니다. 미사용 접근 분석기는 IAM 사용자와 역할만 지원합니다. 자세한 내용은 IAM Access Analyzer 결과의 작동 방식 이해를 참고하세요.
외부 접근 지원 리소스 유형
- Amazon Simple Storage Service 버킷
- Amazon Simple Storage Service 디렉터리 버킷
- AWS Identity and Access Management 역할
- AWS Key Management Service 키
- AWS Lambda 함수 및 계층
- Amazon Simple Queue Service 대기열
- AWS Secrets Manager 시크릿
- Amazon Simple Notification Service 주제
- Amazon Elastic Block Store 볼륨 스냅샷
- Amazon Relational Database Service DB 스냅샷
- Amazon Relational Database Service DB 클러스터 스냅샷
- Amazon Elastic Container Registry 저장소
- Amazon Elastic File System 파일 시스템
- Amazon DynamoDB 스트림
- Amazon DynamoDB 테이블
내부 접근 지원 리소스 유형
- Amazon Simple Storage Service 버킷
- Amazon Simple Storage Service 디렉터리 버킷
- Amazon Relational Database Service DB 스냅샷
- Amazon Relational Database Service DB 클러스터 스냅샷
- Amazon DynamoDB 스트림
- Amazon DynamoDB 테이블
Amazon Simple Storage Service 버킷
외부 접근 분석기의 경우 IAM Access Analyzer는 Amazon S3 버킷을 분석할 때, 버킷에 적용된 버킷 정책·액세스 제어 목록(ACL)·액세스 지점(다중 리전 액세스 지점 포함)이 외부 엔터티에 접근을 부여하면 결과를 생성합니다. 외부 엔터티는 신뢰 구역 밖에 있는, 필터를 만들 수 있는 주체나 다른 엔터티입니다. 예를 들어 버킷 정책이 다른 계정에 접근을 부여하거나 공개 접근을 허용하면 IAM Access Analyzer는 결과를 생성합니다. 단, 버킷에서 Block Public Access를 활성화하면 계정 수준이나 버킷 수준에서 접근을 차단할 수 있습니다.
내부 접근 분석기의 경우 IAM Access Analyzer는 조직·계정 내 주체(사용자·역할)가 지정된 Amazon S3 버킷에 접근할 수 있으면 결과를 생성합니다.
참고 — IAM Access Analyzer는 교차 계정 액세스 지점에 연결된 액세스 지점 정책을 분석하지 않습니다. 액세스 지점과 그 정책이 분석기 계정 밖에 있기 때문이에요. 버킷이 교차 계정 액세스 지점에 접근을 위임하고 버킷·계정에 Block Public Access가 활성화되지 않으면 IAM Access Analyzer는 공개 결과를 생성합니다. Block Public Access를 활성화하면 공개 결과가 해결되고, IAM Access Analyzer는 교차 계정 액세스 지점에 대한 교차 계정 결과를 생성합니다.
Amazon S3 Block Public Access 설정은 버킷에 적용된 버킷 정책을 재정의합니다. 설정은 버킷 액세스 지점에 적용된 액세스 지점 정책도 재정의합니다. IAM Access Analyzer는 정책이 변경될 때마다 버킷 수준의 Block Public Access 설정을 분석합니다. 다만 계정 수준의 Block Public Access 설정은 6시간마다 한 번만 평가합니다. 즉 IAM Access Analyzer가 버킷에 대한 공개 접근 결과를 생성하거나 해결하지 못하는 시간이 최대 6시간이 될 수 있어요. 예를 들어 공개 접근을 허용하는 버킷 정책이 있다면 IAM Access Analyzer는 그 접근에 대한 결과를 생성합니다. 그런 다음 계정 수준에서 버킷의 모든 공개 접근을 차단하도록 Block Public Access를 활성화해도, 버킷에 대한 모든 공개 접근이 차단되었음에도 IAM Access Analyzer는 버킷 정책에 대한 결과를 최대 6시간 동안 해결하지 않습니다. 교차 계정 액세스 지점의 공개 결과 해결도 계정 수준에서 Block Public Access를 활성화한 후 최대 6시간이 걸릴 수 있어요. 버킷 정책 변경 없이 리소스 제어 정책(RCP)만 변경하면 결과에 보고된 버킷의 재스캔이 트리거되지 않습니다. IAM Access Analyzer는 24시간 이내의 다음 주기적 스캔 중에 새·업데이트된 정책을 분석합니다.
다중 리전 액세스 지점의 경우 IAM Access Analyzer는 결과 생성을 위해 정해진 정책을 사용합니다. IAM Access Analyzer는 다중 리전 액세스 지점 변경을 6시간마다 한 번 평가합니다. 즉 다중 리전 액세스 지점을 생성·삭제하거나 정책을 업데이트해도 IAM Access Analyzer는 최대 6시간 동안 결과를 생성하거나 해결하지 못합니다.
Amazon Simple Storage Service 디렉터리 버킷
Amazon S3 디렉터리 버킷은 범용 버킷의 평면 스토리지 구조와 달리 데이터를 디렉터리로 계층적으로 구성합니다. 이는 성능이 중요한 워크로드나 애플리케이션에 권장됩니다. 외부 접근 분석기의 경우 IAM Access Analyzer는 외부 엔터티가 디렉터리 버킷에 접근할 수 있게 하는 디렉터리 버킷 정책(정책의 조건 명령문 포함)을 분석합니다.
내부 접근 분석기의 경우 IAM Access Analyzer는 조직·계정 내 주체가 지정된 Amazon S3 디렉터리 버킷에 접근할 수 있으면 결과를 생성합니다.
Amazon S3 디렉터리 버킷은 액세스 지점도 지원합니다. 액세스 지점은 액세스 지점을 통한 디렉터리 버킷에 대한 모든 요청에 별개의 권한·네트워크 제어를 적용합니다. 각 액세스 지점은 기본 디렉터리 버킷에 연결된 버킷 정책과 함께 작동하는 액세스 지점 정책을 가질 수 있어요. 디렉터리 버킷의 액세스 지점을 사용하면 특정 접두사, API 작업, 또는 가상 프라이빗 클라우드(VPC)에 대한 접근을 제한할 수 있습니다.
참고 — IAM Access Analyzer는 교차 계정 액세스 지점에 연결된 액세스 지점 정책을 분석하지 않습니다. 액세스 지점과 그 정책이 분석기 계정 밖에 있기 때문이에요. 버킷이 교차 계정 액세스 지점에 접근을 위임하고 버킷·계정에 Block Public Access가 활성화되지 않으면 IAM Access Analyzer는 공개 결과를 생성합니다. Block Public Access를 활성화하면 공개 결과가 해결되고, IAM Access Analyzer는 교차 계정 액세스 지점에 대한 교차 계정 결과를 생성합니다.
Amazon S3 디렉터리 버킷에 대한 자세한 내용은 Amazon Simple Storage Service 사용자 가이드의 디렉터리 버킷 작업을 참고하세요.
AWS Identity and Access Management 역할
IAM 역할의 경우 IAM Access Analyzer는 신뢰 정책을 분석합니다. 역할 신뢰 정책에서 역할을 수임하도록 신뢰하는 주체를 정의합니다. 역할 신뢰 정책은 IAM에서 역할에 연결되는 필수 리소스 기반 정책입니다. IAM Access Analyzer는 신뢰 구역 내에서, 신뢰 구역 밖의 외부 엔터티가 접근할 수 있는 역할에 대한 결과를 생성합니다.
참고 — IAM 역할은 글로벌 리소스입니다. 역할 신뢰 정책이 외부 엔터티에 접근을 부여하면 IAM Access Analyzer는 활성화된 각 리전에서 결과를 생성합니다.
AWS Key Management Service 키
AWS KMS 키의 경우 IAM Access Analyzer는 키에 적용된 키 정책과 권한 부여(grants)를 분석합니다. 키 정책이나 권한 부여가 외부 엔터티의 키 접근을 허용하면 결과를 생성합니다. 예를 들어 kms:CallerAccount 조건 키를 정책 명령문에서 사용해 특정 AWS 계정의 모든 사용자에게 접근을 허용하고, 현재 계정(현재 분석기의 신뢰 구역)이 아닌 계정을 지정하면 IAM Access Analyzer는 결과를 생성합니다. IAM 정책 명령문의 AWS KMS 조건 키에 대한 자세한 내용은 AWS KMS 조건 키를 참고하세요.
IAM Access Analyzer가 KMS 키를 분석할 때는 키 정책과 권한 부여 목록 같은 키 메타데이터를 읽습니다. 키 정책이 IAM Access Analyzer 역할이 키 메타데이터를 읽는 것을 허용하지 않으면 Access Denied 오류 결과가 생성됩니다. 예를 들어 다음 정책 명령문이 키에 적용된 유일한 정책이라면 IAM Access Analyzer에서 접근 거부 오류 결과가 발생합니다.
{
"Sid": "Allow access for Key Administrators",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:role/Admin"
},
"Action": "kms:*",
"Resource": "*"
}
이 명령문은 AWS 계정 111122223333의 Admin 역할만 키에 접근하도록 허용하므로, IAM Access Analyzer가 키를 완전히 분석할 수 없어 Access Denied 오류 결과가 생성됩니다. 오류 결과는 Findings(결과) 표에 빨간색 텍스트로 표시됩니다. 결과는 대략 다음과 같습니다.
{
"error": "ACCESS_DENIED",
"id": "12345678-1234-abcd-dcba-111122223333",
"analyzedAt": "2019-09-16T14:24:33.352Z",
"resource": "arn:aws:kms:us-west-2:1234567890:key/1a2b3c4d-5e6f-7a8b-9c0d-1a2b3c4d5e6f7g8a",
"resourceType": "AWS::KMS::Key",
"status": "ACTIVE",
"updatedAt": "2019-09-16T14:24:33.352Z"
}
KMS 키를 만들 때 키에 부여되는 권한은 키를 만든 방식에 따라 달라집니다. 키 리소스에 대해 Access Denied 오류 결과를 받으면, 다음 정책 명령문을 키 리소스에 적용해 IAM Access Analyzer가 키에 접근할 권한을 부여하세요.
{
"Sid": "Allow IAM Access Analyzer access to key metadata",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer"
},
"Action": [
"kms:DescribeKey",
"kms:GetKeyPolicy",
"kms:List*"
],
"Resource": "*"
},
KMS 키 리소스에 대한 Access Denied 결과를 받은 뒤 키 정책을 업데이트해 결과를 해결하면 결과 상태가 Resolved로 업데이트됩니다. 키에 외부 엔터티 접근을 부여하는 정책 명령문·키 권한이 있다면 키 리소스에 대한 추가 결과가 표시될 수 있어요.
AWS Lambda 함수 및 계층
AWS Lambda 함수의 경우 IAM Access Analyzer는 외부 엔터티의 함수 접근을 부여하는 정책(정책의 조건 명령문 포함)을 분석합니다. Lambda에서는 함수·버전·별칭·계층마다 고유한 리소스 기반 정책을 연결할 수 있습니다. IAM Access Analyzer는 함수와 계층에 연결된 리소스 기반 정책을 기준으로 외부 접근을 보고합니다. 한정 ARN(qualified ARN)으로 호출되는 별칭·특정 버전에 연결된 리소스 기반 정책 기준의 외부 접근은 보고하지 않습니다.
자세한 내용은 AWS Lambda 개발자 가이드의 Lambda용 리소스 기반 정책 사용과 버전 사용을 참고하세요.
Amazon Simple Queue Service 대기열
Amazon SQS 대기열의 경우 IAM Access Analyzer는 외부 엔터티에 대기열 접근을 허용하는 정책(정책의 조건 명령문 포함)을 분석합니다.
AWS Secrets Manager 시크릿
AWS Secrets Manager 시크릿의 경우 IAM Access Analyzer는 외부 엔터티의 시크릿 접근을 허용하는 정책(정책의 조건 명령문 포함)을 분석합니다.
Amazon Simple Notification Service 주제
IAM Access Analyzer는 Amazon SNS 주제에 연결된 리소스 기반 정책(주제에 대한 외부 접근을 허용하는 정책의 조건 명령문 포함)을 분석합니다. 리소스 기반 정책을 통해 외부 계정이 주제 구독·게시 같은 Amazon SNS 작업을 수행하도록 허용할 수 있어요. 신뢰 구역 밖의 계정 주체가 주제에 작업을 수행할 수 있다면 Amazon SNS 주제는 외부에서 접근 가능합니다. Amazon SNS 주제를 만들 때 정책에서 Everyone을 선택하면 주제를 공개적으로 접근 가능하게 만듭니다. AddPermission은 외부 접근을 허용하는 리소스 기반 정책을 Amazon SNS 주제에 추가하는 또 다른 방법입니다.
Amazon Elastic Block Store 볼륨 스냅샷
Amazon Elastic Block Store 볼륨 스냅샷에는 리소스 기반 정책이 없습니다. 스냅샷은 Amazon EBS 공유 권한으로 공유됩니다. Amazon EBS 볼륨 스냅샷의 경우 IAM Access Analyzer는 외부 엔터티에 스냅샷 접근을 허용하는 액세스 제어 목록을 분석합니다. 암호화된 Amazon EBS 볼륨 스냅샷은 외부 계정과 공유할 수 있습니다. 암호화되지 않은 볼륨 스냅샷은 외부 계정과 공유하고 공개 접근을 부여할 수 있어요. 공유 설정은 스냅샷의 CreateVolumePermissions 속성에 있습니다. 고객이 Amazon EBS 스냅샷의 외부 접근을 미리 볼 때 IAM Access Analyzer가 Secrets Manager 시크릿을 처리하는 방식과 유사하게, 스냅샷이 암호화되었음을 나타내는 지표로 암호화 키를 지정할 수 있습니다.
Amazon Relational Database Service DB 스냅샷
Amazon RDS DB 스냅샷에는 리소스 기반 정책이 없습니다. DB 스냅샷은 Amazon RDS 데이터베이스 권한으로 공유되며, 수동 DB 스냅샷만 공유할 수 있습니다. 외부 접근 분석기의 경우 IAM Access Analyzer는 외부 엔터티에 Amazon RDS DB 스냅샷 접근을 허용하는 액세스 제어 목록을 분석합니다. 암호화되지 않은 DB 스냅샷은 공개될 수 있습니다. 암호화된 DB 스냅샷은 공개 공유할 수 없지만 최대 20개의 다른 계정과 공유할 수 있어요. 자세한 내용은 DB 스냅샷 생성을 참고하세요. IAM Access Analyzer는 데이터베이스 수동 스냅샷을 내보내는 기능(예: Amazon S3 버킷으로)을 신뢰된 접근으로 간주합니다.
내부 접근 분석기의 경우 IAM Access Analyzer는 조직·계정 내 주체가 지정된 Amazon RDS DB 스냅샷에 접근할 수 있으면 결과를 생성합니다.
참고 — IAM Access Analyzer는 데이터베이스 자체에 직접 구성된 공개·교차 계정 접근을 식별하지 않습니다. IAM Access Analyzer는 Amazon RDS DB 스냅샷에 구성된 공개·교차 계정 접근에 대한 결과만 식별합니다.
Amazon Relational Database Service DB 클러스터 스냅샷
Amazon RDS DB 클러스터 스냅샷에는 리소스 기반 정책이 없습니다. 스냅샷은 Amazon RDS DB 클러스터 권한으로 공유됩니다. 외부 접근 분석기의 경우 IAM Access Analyzer는 외부 엔터티에 Amazon RDS DB 클러스터 스냅샷 접근을 허용하는 액세스 제어 목록을 분석합니다. 암호화되지 않은 클러스터 스냅샷은 공개될 수 있습니다. 암호화된 클러스터 스냅샷은 공개 공유할 수 없습니다. 암호화되지 않은 클러스터 스냅샷과 암호화된 클러스터 스냅샷 모두 최대 20개의 다른 계정과 공유할 수 있어요. 자세한 내용은 DB 클러스터 스냅샷 생성을 참고하세요. IAM Access Analyzer는 DB 클러스터 스냅샷을 내보내는 기능(예: Amazon S3 버킷으로)을 신뢰된 접근으로 간주합니다.
내부 접근 분석기의 경우 IAM Access Analyzer는 조직·계정 내 주체가 지정된 Amazon RDS DB 클러스터 스냅샷에 접근할 수 있으면 결과를 생성합니다.
참고 — IAM Access Analyzer 결과는 AWS Resource Access Manager를 사용한 다른 AWS 계정·조직과의 Amazon RDS DB 클러스터·복제본 공유 모니터링을 포함하지 않습니다. IAM Access Analyzer는 Amazon RDS DB 클러스터 스냅샷에 구성된 공개·교차 계정 접근에 대한 결과만 식별합니다.
Amazon Elastic Container Registry 저장소
Amazon ECR 저장소의 경우 IAM Access Analyzer는 외부 엔터티에 저장소 접근을 허용하는 리소스 기반 정책(정책의 조건 명령문 포함)을 분석합니다(Amazon SNS 주제·Amazon EFS 파일 시스템 같은 다른 리소스 유형과 유사). Amazon ECR 저장소의 경우 주체가 외부에서 접근 가능한 것으로 간주되려면 자격 증명 기반 정책을 통해 ecr:GetAuthorizationToken 권한이 있어야 합니다.
Amazon Elastic File System 파일 시스템
Amazon EFS 파일 시스템의 경우 IAM Access Analyzer는 외부 엔터티의 파일 시스템 접근을 허용하는 정책(정책의 조건 명령문 포함)을 분석합니다. 신뢰 구역 밖의 계정 주체가 그 파일 시스템에 작업을 수행할 수 있다면 Amazon EFS 파일 시스템은 외부에서 접근 가능합니다. 접근은 IAM을 사용하는 파일 시스템 정책과 파일 시스템이 마운트된 방식에 의해 정의됩니다. 예를 들어 다른 계정에서 Amazon EFS 파일 시스템을 마운트하는 경우, 그 계정이 조직에 속하고 조직을 신뢰 구역으로 정의하지 않았다면 외부에서 접근 가능한 것으로 간주됩니다. 공용 서브넷이 있는 가상 프라이빗 클라우드에서 파일 시스템을 마운트하면 파일 시스템은 외부에서 접근 가능합니다. AWS Transfer Family와 함께 Amazon EFS를 사용할 때, 파일 시스템과 다른 계정이 소유한 Transfer Family 서버에서 받은 파일 시스템 접근 요청은 파일 시스템이 공개 접근을 허용하면 차단됩니다.
Amazon DynamoDB 스트림
외부 접근 분석기의 경우 IAM Access Analyzer는 DynamoDB 정책이 외부 엔터티의 DynamoDB 스트림 접근을 허용하는 교차 계정 작업을 하나 이상 허용하면 결과를 생성합니다. DynamoDB의 지원되는 교차 계정 작업에 대한 자세한 내용은 Amazon DynamoDB 개발자 가이드의 리소스 기반 정책이 지원하는 IAM 작업을 참고하세요.
내부 접근 분석기의 경우 IAM Access Analyzer는 조직·계정 내 주체가 지정된 DynamoDB 스트림에 접근할 수 있으면 결과를 생성합니다.
Amazon DynamoDB 테이블
외부 접근 분석기의 경우 IAM Access Analyzer는 DynamoDB 정책이 외부 엔터티의 DynamoDB 테이블·인덱스 접근을 허용하는 교차 계정 작업을 하나 이상 허용하면 테이블에 대한 결과를 생성합니다. DynamoDB의 지원되는 교차 계정 작업에 대한 자세한 내용은 Amazon DynamoDB 개발자 가이드의 리소스 기반 정책이 지원하는 IAM 작업을 참고하세요.
내부 접근 분석기의 경우 IAM Access Analyzer는 조직·계정 내 주체가 지정된 DynamoDB 테이블에 접근할 수 있으면 결과를 생성합니다.