이 문서에서는 EKS(Amazon Elastic Kubernetes Service) 및 GKE(Google Kubernetes Engine) 환경에서 컨테이너에 대한 Microsoft Defender 온보딩하고 작동하는 데 필요한 클라우드 IAM 역할 및 권한에 대해 설명합니다.
이러한 권한은 클라우드 커넥터, Azure Arc 프로비전, 에이전트 없는 위협 방지 및 레지스트리 통합 기능에 적용됩니다.
기능에 필요한 권한
| 컨테이너용 Defender 기능 | 구성 요소 | 필수 역할 |
|---|---|---|
|
GKE 런타임 보호 GKE 워크로드 강화 런타임 취약성 평가(선택 사항) |
GKE Arc 프로비저닝(Defender 에이전트 및 Azure 정책 에이전트용) | Azure Arc 역할: Defender Kubernetes 에이전트 운영자 GCP 미리 정의된 역할: Kubernetes 엔진 관리자 또는 Kubernetes 엔진 뷰어 (에이전트 없는 위협 방지 및/또는 Kubernetes API 액세스 확장만 사용하도록 설정된 경우) |
|
EKS 런타임 보호 GKE 워크로드 강화 런타임 취약성 평가(선택 사항) |
AWS Arc 프로비저닝(Defender 에이전트 및 Azure 정책 에이전트용) | Azure Arc 역할: Defender Kubernetes 에이전트 운영자 AWS의 역할: AzureDefenderKubernetesRole |
| GKE 컨트롤 플레인 강화 - 에이전트 없는 위협 방지 | GKE AuditLogs 프로비전 | GCP 에이전트 없는 위협 방지 권한 참조 |
| EKS 컨트롤 플레인 강화 - 에이전트 없는 위협 방지 | AWS AuditLogs 프로비전 | AWS 에이전트 없는 위협 방지 권한 참조 |
EKS 및 GKE에 대한 Azure Arc 프로비저닝 역할
Defender 에이전트를 프로비전하는 Azure Arc 기본 제공 역할 Defender Kubernetes 에이전트 운영자 및 Azure Policy 에이전트에는 다음 권한이 있습니다.
- Microsoft.Authorization/*/read
- Microsoft.Insights/alertRules/*
- Microsoft.Resources/deployments/*
- Microsoft.Resources/subscriptions/resourceGroups/read
- Microsoft.Resources/subscriptions/resourceGroups/write
- Microsoft.Resources/subscriptions/operationresults/read
- Microsoft.Resources/subscriptions/read
- Microsoft.KubernetesConfiguration/extensions/write
- Microsoft.KubernetesConfiguration/extensions/read
- Microsoft.KubernetesConfiguration/extensions/delete
- Microsoft.KubernetesConfiguration/extensions/operations/read
- Microsoft.Kubernetes/connectedClusters/Write
- Microsoft.Kubernetes/connectedClusters/read
- Microsoft.OperationalInsights/workspaces/write
- Microsoft.OperationalInsights/workspaces/read
- Microsoft.OperationalInsights/workspaces/listKeys/action
- Microsoft.OperationalInsights/workspaces/sharedkeys/action
- Microsoft.Kubernetes/register/action
- Microsoft.KubernetesConfiguration/register/action
AWS 에이전트 없는 위협 방지 권한
AzureDefenderKubernetesRole(기본 역할 이름: MDCContainersK8sRole):
sts:AssumeRole
sts:AssumeRoleWithWebIdentity
logs:PutSubscriptionFilter
logs:DescribeSubscriptionFilters
logs:DescribeLogGroups
logs:PutRetentionPolicy
파이어호스:*
iam:PassRole
eks:클러스터구성업데이트
eks:DescribeCluster (클러스터 설명)
eks:접근 항목 생성
eks:ListAccessEntries
eks:AssociateAccessPolicy
eks:ListAssociatedAccessPolicies
sqs:*
s3:*
AzureDefenderKubernetesScubaReaderRole(기본 역할 이름: MDCContainersK8sDataCollectionRole):
- sts:AssumeRole
- sts:AssumeRoleWithWebIdentity
- sqs:ReceiveMessage
- sqs:DeleteMessage (SQS 메시지 삭제)
- s3:GetObject
- s3:GetBucketLocation
AzureDefenderCloudWatchToKinesisRole(기본 역할 이름: MDCContainersK8sCloudWatchToKinesisRole):
- sts:AssumeRole
- 파이어호스:*
AzureDefenderKinesisToS3Role(기본 역할 이름: MDCContainersK8sKinesisToS3Role):
MDCContainersAgentlessDiscoveryK8sRole
- sts:AssumeRoleWithWebIdentity
- eks:클러스터구성업데이트
- eks:DescribeCluster (클러스터 설명)
- eks:접근 항목 생성
- eks:ListAccessEntries
- eks:AssociateAccessPolicy
- eks:ListAssociatedAccessPolicies
MDCContainersImageAssessmentRole
- sts:AssumeRoleWithWebIdentity
- 이러한 역할의 권한: AmazonEC2ContainerRegistryPowerUser 및 AmazonElasticContainerRegistryPublicPowerUser
GCP 에이전트 없는 위협 방지 권한
Microsoft Defender 컨테이너 데이터 수집 역할
- pubsub.subscriptions.consume
- pubsub.subscriptions.get
MicrosoftDefenderContainersRole
- logging.sinks.list
- logging.sinks.get
- logging.sinks.create
- logging.sinks.update
- logging.sinks.delete
- resourcemanager.projects.getIamPolicy
- resourcemanager.organizations.getIamPolicy
- iam.serviceAccounts.get
- iam.workloadIdentityPoolProviders.get(Pub/Sub으로 전송되는 모든 로그)
MDCCustomRole
- resourcemanager.folders.get
- resourcemanager.folders.list
- resourcemanager.projects.get
- resourcemanager.projects.list
- serviceusage.services.enable
- 역할 생성 (iam.roles.create)
- iam.roles.list
- compute.projects.get
- compute.projects.setCommonInstanceMetadata (일반 인스턴스 메타데이터 설정)
MDCCspmCustomRole
- resourcemanager.folders.getIamPolicy
- resourcemanager.folders.list
- resourcemanager.organizations.get
- resourcemanager.organizations.getIamPolicy
- storage.buckets.getIamPolicy
MDCGkeContainerInventoryCollectionRole
- 컨테이너.노드.프록시
- container.secrets.list
클라우드 환경에서 부여된 권한
AWS 또는 GCP 환경을 온보딩하여 클라우드용 Microsoft Defender 경우 선택한 액세스 모델을 기반으로 필요한 IAM 역할을 만들기 위한 배포 스크립트가 생성됩니다.
- 기본 액세스 는 선택한 Defender 계획의 모든 현재 및 향후 확장을 지원합니다.
- 최소 권한 있는 액세스 는 현재 사용하도록 설정된 확장을 지원하는 데 필요한 권한만 부여합니다.
다음 표에서는 선택한 액세스 모델에 따라 컨테이너 역할에 대해 Defender 부여된 권한을 보여 줍니다.
AWS 기본 액세스
| 역할 이름 | 연결된 정책/사용 권한 | 역량 |
|---|---|---|
| MDCContainersImageAssessmentRole | AmazonEC2ContainerRegistryPowerUser AWS 권한 목록 AmazonElasticContainerRegistryPublicPowerUser AWS 권한 목록 |
에이전트 없는 컨테이너 취약성 평가. |
| MDCContainersAgentlessDiscoveryK8sRole | eks:DescribeCluster (클러스터 설명) eks:클러스터구성업데이트 eks:접근 항목 생성 eks:ListAccessEntries eks:AssociateAccessPolicy eks:ListAssociatedAccessPolicies |
에이전트 없이 Kubernetes를 검색합니다. IP 제한을 지원하도록 EKS 클러스터 업데이트 |
AWS 최소 권한 액세스
| 역할 이름 | 연결된 정책/사용 권한 | 기능 |
|---|---|---|
| MDCContainersImageAssessmentRole | AmazonEC2ContainerRegistryReadOnly AWS 권한 목록 AmazonElasticContainerRegistryPublicReadOnly AWS 권한 목록 |
에이전트 없는 컨테이너 취약성 평가. |
| MDCContainersAgentlessDiscoveryK8sRole | eks:DescribeCluster (클러스터 설명) eks:클러스터구성업데이트 |
에이전트 없이 Kubernetes를 검색합니다. IP 제한을 지원하도록 EKS 클러스터 업데이트 |
GCP 기본 액세스
| 서비스 계정 이름 | 연결된 역할/사용 권한 | 역량 |
|---|---|---|
| mdc-containers-artifact-assess | Roles/storage.objectUser GCP 권한 목록 Roles/artifactregistry.writer GCP 권한 목록 |
에이전트 없는 컨테이너 취약성 평가. |
| mdc-containers-k8s-operator | Roles/container.viewer GCP 권한 목록 사용자 지정 역할 [MDCGkeClusterWriteRole]에는 container.clusters.update 권한이 포함됩니다. |
에이전트 없는 Kubernetes 검색 IP 제한을 지원하도록 GKE 클러스터 업데이트 |
GCP 최소 권한 있는 액세스
| 서비스 계정 이름 | 연결된 역할/사용 권한 | 현재 기능 |
|---|---|---|
| mdc-containers-artifact-assess | Roles/artifactregistry.reader GCP 권한 목록 Roles/storage.objectViewer GCP 권한 목록 |
에이전트 없는 컨테이너 취약성 평가. |
| mdc-containers-k8s-operator | Roles/container.viewer GCP 권한 목록 사용자 지정 역할 MDCGkeClusterWriteRole은 container.clusters.update 권한을 가지고 있습니다. |
에이전트 없이 Kubernetes를 검색합니다. IP 제한을 지원하도록 GKE 클러스터 업데이트 |