외부 액세스를 위한 IAM Access Analyzer 리소스 유형
외부 액세스 분석기의 경우 IAM Access Analyzer에서는 IAM Access Analyzer를 활성화한 리전의 AWS 리소스에 적용되는 리소스 기반 정책을 분석합니다. 리소스 기반 정책만 분석됩니다. IAM Access Analyzer에서 각 리소스 유형에 대한 결과를 생성하는 방법을 자세히 알아보려면 각 리소스에 대한 정보를 검토합니다.
참고
나열된 리소스 유형은 외부 액세스 분석기를 지원합니다. 미사용 액세스 분석기는 IAM 사용자 및 역할만 지원합니다. 자세한 내용은 조사 결과 작업 단원을 참조하십시오.
외부 액세스에 대해 지원하는 리소스 유형:
- 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 SNS) 주제
- Amazon Elastic Block Store 볼륨 스냅샷
- Amazon Relational Database Service DB 스냅샷
- Amazon Relational Database Service DB 클러스터 스냅샷
- Amazon Elastic 컨테이너 레지스트리 리포지토리
- Amazon Elastic File System 파일 시스템
- Amazon DynamoDB Streams
- Amazon DynamoDB 테이블
Amazon Simple Storage Service 버킷
IAM Access Analyzer는 Amazon S3 버킷을 분석할 때 버킷에 적용된 S3 버킷 정책, ACL 또는 액세스 포인트(다중 리전 액세스 포인트 포함)가 외부 엔터티에 액세스 권한을 부여할 때 결과를 생성합니다. 외부 엔터티는 신뢰 영역 내에 없는 필터를 생성하는 데 사용할 수 있는 보안 주체 또는 기타 엔터티입니다. 예를 들어 버킷 정책이 다른 계정에 액세스 권한을 부여하거나 퍼블릭 액세스를 허용하는 경우, IAM Access Analyzer에서 결과를 생성합니다. 그러나 버킷에서 Block Public Access(퍼블릭 액세스 차단)를 활성화하면 계정 수준 또는 버킷 수준에서 액세스를 차단할 수 있습니다.
참고
액세스 포인트와 해당 정책이 분석기 계정 외부에 있기 때문에 IAM Access Analyzer는 크로스 계정 액세스 포인트에 연결된 액세스 포인트 정책을 분석하지 않습니다. IAM Access Analyzer는 버킷이 크로스 계정 액세스 포인트에 대한 액세스를 위임하고 버킷 또는 계정에서 퍼블릭 액세스 차단이 활성화되지 않은 경우 공개 결과를 생성합니다. 퍼블릭 액세스 차단을 활성화하면 공개 결과가 해결되고 IAM Access Analyzer가 크로스 계정 액세스 포인트에 대한 크로스 계정 결과를 생성합니다.
Amazon S3 Block Public Access(퍼블릭 액세스 차단) 설정은 버킷에 적용되는 버킷 정책을 재정의합니다. 이 설정은 버킷의 액세스 포인트에 적용되는 액세스 포인트 정책도 재정의합니다. IAM Access Analyzer는 정책이 변경될 때마다 버킷 수준에서 Block Public Access(퍼블릭 액세스 차단) 설정을 분석합니다. 하지만 6시간마다 한 번씩만 계정 수준에서 Block Public Access(퍼블릭 액세스 차단) 설정을 평가합니다. 즉, IAM Access Analyzer에서 버킷에 대한 퍼블릭 액세스의 결과를 최대 6시간 동안 생성 또는 확인하지 못할 수 있습니다. 예를 들어 퍼블릭 액세스를 허용하는 버킷 정책이 있는 경우, IAM Access Analyzer에서 해당 액세스에 대한 결과를 생성합니다. Block Public Access(퍼블릭 액세스 차단)를 활성화하여 계정 수준에서 버킷에 대한 모든 퍼블릭 액세스를 차단하면 버킷에 대한 모든 퍼블릭 액세스가 차단되더라도 IAM Access Analyzer에서 최대 6시간 동안 버킷 정책에 대한 결과를 확인하지 못합니다. 계정 수준에서 퍼블릭 액세스 차단을 활성화하면 크로스 계정 액세스 포인트에 대한 공개 결과를 확인하는 데 최대 6시간이 걸릴 수 있습니다.
다중 리전 액세스 포인트의 경우 IAM Access Analyzer는 정해진 정책을 사용하여 결과를 생성합니다. IAM Access Analyzer는 6시간마다 한 번씩 다중 리전 액세스 포인트의 변경 사항을 평가합니다. 즉, 다중 리전 액세스 포인트를 생성 또는 삭제하거나 관련 정책을 업데이트하는 경우에도 IAM Access Analyzer에서 최대 6시간 동안 결과를 생성하거나 확인하지 않습니다.
Amazon Simple Storage Service 디렉터리 버킷
Amazon S3 디렉터리 버킷은 Amazon S3 Express One 스토리지 클래스를 사용하며, 이는 성능이 중요한 워크로드 또는 애플리케이션에 권장됩니다. Amazon S3 디렉터리 버킷의 경우 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 keys의 경우 IAM Access Analyzer는 키에 적용되는 키 정책 및 권한 부여를 분석합니다. IAM Access Analyzer는 키 정책 또는 권한 부여로 외부 엔터티가 키에 액세스할 수 있는 경우 결과를 생성합니다. 예를 들어 정책 문에서 kms:CallerAccount 조건 키를 사용하여 특정 AWS 계정의 모든 사용자에게 액세스를 허용하고 현재 계정(현재 분석기의 신뢰 영역)이 아닌 다른 계정을 지정하면 IAM Access Analyzer에서 결과를 생성합니다. IAM 정책 문의 AWS KMS 조건 키에 대한 자세한 내용을 알아보려면 AWS KMS 조건 키를 참조하세요.
IAM Access Analyzer는 KMS 키를 분석할 때 키 정책 및 권한 부여 목록과 같은 주요 메타데이터를 읽습니다. 키 정책에서 키 메타데이터를 읽을 수 없는 IAM Access Analyzer 역할을 허용하지 않는 경우 액세스 거부 오류 결과가 생성됩니다. 예를 들어 다음과 같은 예제 정책 문이 키에 적용되는 유일한 정책인 경우, 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에서 키를 완전히 분석할 수 없으므로 액세스 거부 오류 결과가 생성됩니다. 오류 결과는 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 키를 생성할 때 키에 액세스할 수 있도록 부여된 권한은 키를 생성하는 방법에 따라 다릅니다. 키 리소스에 대해 액세스 거부 오류 결과를 수신하는 경우, 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 키 리소스에 대한 액세스 거부 결과를 수신한 다음 키 정책을 업데이트하여 결과를 확인하면 결과가 확인 완료 상태로 업데이트됩니다. 외부 엔터티에 키에 대한 권한을 부여하는 정책 설명 또는 키 부여가 있는 경우, 키 리소스에 대한 추가 결과가 표시될 수 있습니다.
AWS Lambda 함수 및 계층
AWS Lambda 함수의 경우 IAM Access Analyzer는 외부 엔터티에 함수에 대한 액세스 권한을 부여하는 정책의 조건 문을 비롯해 정책을 분석합니다. Lambda를 사용하면 고유한 리소스 기반 정책을 함수, 버전, 별칭 및 계층에 연결할 수 있습니다. IAM Access Analyzer는 함수와 계층에 연결된 리소스 기반 정책을 기반으로 외부 액세스를 보고합니다. IAM Access Analyzer는 검증된 ARN을 사용하여 간접적으로 호출된 별칭 및 특정 버전에 연결된 리소스 기반 정책을 기반으로 외부 액세스를 보고하지 않습니다.
자세한 내용은 AWS Lambda 개발자 안내서의 Using resource-based policies for Lambda와 Using versions를 참조하세요.
Amazon Simple Queue Service 대기열
Amazon SQS 대기열의 경우 IAM Access Analyzer는 외부 엔터티가 대기열에 액세스할 수 있도록 허용하는 정책의 조건 문을 비롯해 정책을 분석합니다.
AWS Secrets Manager 보안 암호
AWS Secrets Manager 암호의 경우, IAM Access Analyzer는 외부 엔터티가 암호에 액세스할 수 있도록 허용하는 정책을 조건 문을 비롯해 정책을 분석합니다.
Amazon Simple Notification Service(Amazon SNS) 주제
IAM Access Analyzer는 Amazon SNS 주제와 연결된 리소스 기반 정책으로, 주제에 대한 외부 액세스를 허용하는 정책에서의 조건문을 포함합니다. 외부 계정이 Amazon SNS 작업(예: 리소스 기반 정책을 통해 주제 구독 및 게시)을 수행하도록 허용할 수 있습니다. An 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 스냅샷만 공유할 수 있습니다. Amazon RDS DB 스냅샷의 경우, IAM Access Analyzer가 외부 엔터티의 스냅샷 액세스를 허용하는 액세스 제어 목록을 분석합니다. 암호화되지 않은 DB 스냅샷은 전체적으로 공개할 수 있습니다. 암호화된 DB 스냅샷은 공개적으로 공유할 수 없지만 최대 20개의 다른 계정과 공유할 수 있습니다. 자세한 내용은 DB 스냅샷 생성을 참조하십시오. IAM Access Analyzer는 데이터베이스 수동 스냅샷을 (Amazon S3 버킷 등에 대해) 신뢰할 수 있는 액세스 권한으로 내보내는 기능을 고려합니다.
참고
IAM Access Analyzer는 데이터베이스 자체에서 직접 구성된 공개 또는 계정 간 액세스는 식별하지 않습니다. IAM Access Analyzer는 Amazon RDS DB 스냅샷에서 구성된 공개 또는 계정 간 액세스에 대한 결과만 식별합니다.
Amazon Relational Database Service DB 클러스터 스냅샷
Amazon RDS DB 클러스터 스냅샷은 리소스 기반 정책이 없습니다. 스냅샷은 Amazon RDS DB 클러스터 권한을 통해 공유됩니다. Amazon RDS DB 클러스터 스냅샷의 경우, IAM Access Analyzer가 외부 엔터티의 스냅샷 액세스를 허용하는 액세스 제어 목록을 분석합니다. 암호화되지 않은 클러스터 스냅샷은 전체적으로 공개할 수 있습니다. 암호화된 클러스터 스냅샷은 공개적으로 공유할 수 없습니다. 암호화되지 않은 클러스터 스냅샷과 암호화된 클러스터 스냅샷은 최대 20개의 다른 계정과 공유할 수 있습니다. 자세한 내용은 DB 클러스터 스냅샷 생성을 참조하세요. IAM Access Analyzer는 DB 클러스터 스냅샷을 (Amazon S3 버킷 등에 대해) 신뢰할 수 있는 액세스 권한으로 내보내는 기능을 고려합니다.
참고
IAM Access Analyzer는 AWS Resource Access Manager을 사용하는 다른 AWS 계정 또는 조직과의 Amazon DB 클러스터 및 클론의 공유를 모니터링 결과를 포함하지 않습니다. IAM Access Analyzer는 Amazon RDS DB 클러스터 스냅샷에서 구성된 공개 또는 계정 간 액세스에 대한 결과만 식별합니다.
Amazon Elastic 컨테이너 레지스트리 리포지토리
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 파일 시스템을 마운팅하는 것은 외부에서 액세스하는 것으로 간주됩니다. 단, 계정이 조직에 속해 있고 조직을 신뢰 영역으로 정의했어야 합니다. 퍼블릭 서브넷이 있는 Virtual Private Cloud에서 파일 시스템을 마운팅하는 경우, 파일 시스템을 외부에서 액세스할 수 있습니다. Amazon EFS를 AWS Transfer Family과 함께 사용할 경우, 파일 시스템이 아닌 다른 계정에서 소유한 Transfer Family 서버에서 받은 시스템 액세스 요청은 파일 시스템에서 공개 액세스를 허용할 경우 차단됩니다.
Amazon DynamoDB Streams
DynamoDB 정책에서 외부 엔터티가 DynamoDB 스트림에 액세스할 수 있는 크로스 계정 작업을 하나 이상 허용하는 경우 IAM Access Analyzer는 결과를 생성합니다. DynamoDB에서 지원되는 크로스 계정 작업에 대한 자세한 내용은 Amazon DynamoDB 개발자 가이드의 리소스 기반 정책에서 지원되는 IAM 작업을 참조하세요.
Amazon DynamoDB 테이블
DynamoDB 정책에서 외부 엔터티가 DynamoDB 테이블 또는 인덱스에 액세스할 수 있는 크로스 계정 작업을 하나 이상 허용하는 경우 IAM Access Analyzer는 DynamoDB 테이블에 대한 결과를 생성합니다. DynamoDB에서 지원되는 크로스 계정 작업에 대한 자세한 내용은 Amazon DynamoDB 개발자 가이드의 리소스 기반 정책에서 지원되는 IAM 작업을 참조하세요.