你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

用户角色和权限

Microsoft Defender for Cloud 使用 Azure 基于角色的访问控制 (Azure RBAC) 提供内置角色。 可以将这些角色分配给 Azure 中的用户、组和服务,以便根据角色中定义的访问权限授予用户对资源的访问权限。

Defender for Cloud 会评估资源的配置以识别安全问题和漏洞。 在 Defender for Cloud 中,仅当向你分配了订阅或资源所在的资源组的“所有者”、“参与者”或“读取者”角色时,你才能查看与资源相关的信息。

除了内置角色外,还有两个特定于 Defender for Cloud 的角色:

  • 安全读者:属于此角色的用户对 Defender for Cloud 拥有只读访问权限。 该用户可查看建议、警报、安全策略和安全状态,但不能进行更改。
  • 安全管理员:属于此角色的用户拥有与安全读者相同的权限,此外,还可以更新安全策略、关闭警报和建议

对于需要完成任务的用户,建议尽可能为其分配权限最小的角色。 例如,将“读者”角色分配到只需查看有关资源的安全运行状况而不执行操作(例如应用建议或编辑策略)的用户。

角色和允许的操作

下表显示 Defender for Cloud 中的角色和允许的操作。

Action 安全读取者 /
读取者
安全管理员 参与者 / 所有者 参与者 所有者
(资源组级别) (订阅级别) (订阅级别)
添加/分配计划(包括监管合规性标准) - - -
编辑安全策略 - - -
启用/禁用 Microsoft Defender 计划 - -
消除警报 - -
应用资源的安全建议
(并使用
- -
查看警报和建议
免除安全建议 - - -
配置电子邮件通知 -

注意

虽然提到的三个角色足以启用和禁用 Defender 计划,但要启用计划的所有功能,仍需要“所有者”角色。

部署监视组件所需的特定角色取决于要部署的扩展。 详细了解监视组件

用于自动预配代理和扩展的角色

为了允许安全管理员角色自动预配 Defender for Cloud 计划中使用的代理和扩展,Defender for Cloud 以类似于 Azure Policy 的方式使用策略修正。 若要使用修正,Defender for Cloud 需要创建服务主体(也称为托管标识),以在订阅级别分配角色。 例如,Defender for Containers 计划的服务主体包括:

Service Principal 角色
Defender for Containers 预配 AKS 安全配置文件 • Kubernetes 扩展参与者
• 参与者
• Azure Kubernetes 服务参与者
• Log Analytics 参与者
预配已启用 Arc 的 Kubernetes 的 Defender for Containers • Azure Kubernetes 服务参与者
• Kubernetes 扩展参与者
• 参与者
• Log Analytics 参与者
Defender for Containers 预配适用于 Kubernetes 的 Azure Policy • Kubernetes 扩展参与者
• 参与者
• Azure Kubernetes 服务参与者
已启用 Arc 的 Kubernetes 的 Defender for Containers 预配策略扩展 • Azure Kubernetes 服务参与者
• Kubernetes 扩展参与者
• 参与者

AWS 上的权限

加入 Amazon Web Services (AWS) 连接器时,Defender for Cloud 将创建角色并分配对 AWS 帐户的权限。 下表显示了 AWS 帐户上按每个计划分配的角色和权限。

Defender for Cloud 计划 创建的角色 在 AWS 帐户上分配的权限
Defender CSPM CspmMonitorAws 若要发现 AWS 资源权限,请阅读下述除外的所有资源:
“consolidatedbilling:
“freetier:

“invoicing:
“payments:

“billing:
“tax:

“cur:*”
Defender CSPM

适用于服务器的 Defender
DefenderForCloud-AgentlessScanner 创建和清理磁盘快照(按标记确定范围)“CreatedBy”:“Microsoft Defender for Cloud”权限:
“ec2:DeleteSnapshot”“ec2:ModifySnapshotAttribute”
“ec2:DeleteTags”
“ec2:CreateTags”
“ec2:CreateSnapshots”
“ec2:CopySnapshot”
“ec2:CreateSnapshot”
“ec2:DescribeSnapshots”
“ec2:DescribeInstanceStatus”
EncryptionKeyCreation 的权限“kms:CreateKey”
“kms:ListKeys”
EncryptionKeyManagement 的权限“kms:TagResource”
“kms:GetKeyRotationStatus”
“kms:PutKeyPolicy”
“kms:GetKeyPolicy”
“kms:CreateAlias”
“kms:TagResource”
“kms:ListResourceTags”
“kms:GenerateDataKeyWithoutPlaintext”
“kms:DescribeKey”
“kms:RetireGrant”
“kms:CreateGrant”
“kms:ReEncryptFrom”
Defender CSPM

Defender for Storage
SensitiveDataDiscovery 在 AWS 帐户中发现 S3 存储桶的权限,以及 Defender for Cloud 扫描程序访问 S3 存储桶中的数据的权限。
S3 只读;KMS 解密“kms:Decrypt”
CIEM DefenderForCloud-Ciem
DefenderForCloud-OidcCiem
Ciem 发现的权限
“sts:AssumeRole”
“sts:AssumeRoleWithSAML”
“sts:GetAccessKeyInfo”
“sts:GetCallerIdentity”
“sts:GetFederationToken”
“sts:GetServiceBearerToken”
“sts:GetSessionToken”
“sts:TagSession”
适用于服务器的 Defender DefenderForCloud-DefenderForServers 配置 JIT 网络访问的权限:
“ec2:RevokeSecurityGroupIngress”
“ec2:AuthorizeSecurityGroupIngress”
“ec2:DescribeInstances”
“ec2:DescribeSecurityGroupRules”
“ec2:DescribeVpcs”
“ec2:CreateSecurityGroup”
“ec2:DeleteSecurityGroup”
“ec2:ModifyNetworkInterfaceAttribute”
“ec2:ModifySecurityGroupRules”
“ec2:ModifyInstanceAttribute”
“ec2:DescribeSubnets”
“ec2:DescribeSecurityGroups”
Defender for Containers DefenderForCloud-Containers-K8s 列出 EKS 群集并从 EKS 群集收集数据的权限。
“eks:UpdateClusterConfig”
“eks:DescribeCluster”
Defender for Containers DefenderForCloud-DataCollection Defender for Cloud 创建的 CloudWatch 日志组的权限
“logs:PutSubscriptionFilter”
“logs:DescribeSubscriptionFilters”
“logs:DescribeLogGroups” autp ”logs:PutRetentionPolicy”

使用 Defender for Cloud 创建的 SQS 队列的权限
“sqs:ReceiveMessage”
“sqs:DeleteMessage”
Defender for Containers DefenderForCloud-Containers-K8s-cloudwatch-to-kinesis 访问 Defender for Cloud 创建的 Kinesis Data Firehose 传送流的权限
“firehose:*”
Defender for Containers DefenderForCloud-Containers-K8s-kinesis-to-s3 访问 Defender for Cloud 创建的 S3 存储桶的权限
“s3:GetObject”
“s3:GetBucketLocation”
“s3:AbortMultipartUpload”
“s3:GetBucketLocation”
“s3:GetObject”
“s3:ListBucket”
“s3:ListBucketMultipartUploads”
“s3:PutObject”
Defender for Containers

Defender CSPM
MDCContainersAgentlessDiscoveryK8sRole 从 EKS 群集收集数据的权限。 更新 EKS 群集以支持 IP 限制并为 EKS 群集创建 iipontitymapping
“eks:DescribeCluster”
“eks:UpdateClusterConfig*”
Defender for Containers

Defender CSPM
MDCContainersImageAssessmentRole 从 ECR 和 ECR Public 扫描图像的权限。
AmazonEC2ContainerRegistryReadOnly
AmazonElasticContainerRegistryPublicReadOnly
AmazonEC2ContainerRegistryPowerUser
AmazonElasticContainerRegistryPublicPowerUser
适用于服务器的 Defender DefenderForCloud-ArcAutoProvisioning 使用 SSM 在所有 EC2 实例上安装 Azure Arc 的权限
“ssm:CancelCommand”
“ssm:DescribeInstanceInformation”
“ssm:GetCommandInvocation”
“ssm:UpdateServiceSetting”
“ssm:GetServiceSetting”
“ssm:GetAutomationExecution”
“ec2:DescribeIamInstanceProfileAssociations”
“ec2:DisassociateIamInstanceProfile”
“ec2:DescribeInstances”
“ssm:StartAutomationExecution”
“iam:GetInstanceProfile”
“iam:ListInstanceProfilesForRole”
“ssm:GetAutomationExecution”
“ec2:DescribeIamInstanceProfileAssociations”
“ec2:DisassociateIamInstanceProfile”
“ec2:DescribeInstances”
“ssm:StartAutomationExecution”
“iam:GetInstanceProfile”
“iam:ListInstanceProfilesForRole”
Defender CSPM DefenderForCloud-DataSecurityPostureDB 在 AWS 帐户中发现 RDS 实例的权限,创建 RDS 实例快照,
- 列出所有 RDS 数据库/群集
- 列出所有数据库/群集快照
- 复制所有数据库/群集快照
- 删除/更新带有 defenderfordatabases 前缀的数据库/群集快照
- 列出所有 KMS 密钥
- 仅对源帐户上的 RDS 使用所有 KMS 密钥
- 列出具有标记前缀 DefenderForDatabases 的所有 KMS 密钥
- 为 KMS 密钥创建别名

发现 RDS 实例所需的权限
“rds:DescribeDBInstances”
“rds:DescribeDBClusters”
“rds:DescribeDBClusterSnapshots”
“rds:DescribeDBSnapshots”
“rds:CopyDBSnapshot”
“rds:CopyDBClusterSnapshot”
“rds:DeleteDBSnapshot”
“rds:DeleteDBClusterSnapshot”
“rds:ModifyDBSnapshotAttribute”
“rds:ModifyDBClusterSnapshotAttribute” “rds:DescribeDBClusterParameters”
“rds:DescribeDBParameters”
“rds:DescribeOptionGroups”
“kms:CreateGrant”
“kms:ListAliases”
“kms:CreateKey”
“kms:TagResource”
“kms:ListGrants”
“kms:DescribeKey”
“kms:PutKeyPolicy”
“kms:Encrypt”
“kms:CreateGrant”
“kms:EnableKey”
“kms:CancelKeyDeletion”
“kms:DisableKey”
“kms:ScheduleKeyDeletion”
“kms:UpdateAlias”
“kms:UpdateKeyDescription”

GCP 上的权限

加入 Google Cloud Projects (GCP) 连接器时,Defender for Cloud 将创建角色并分配对 GCP 项目的权限。 下表显示了 GCP 项目上按每个计划分配的角色和权限。

Defender for Cloud 计划 创建的角色 在 AWS 帐户上分配的权限
Defender CSPM MDCCspmCustomRole 发现 GCP 资源
resourcemanager.folders.getIamPolicy
resourcemanager.folders.list
resourcemanager.organizations.get
resourcemanager.organizations.getIamPolicy
storage.buckets.getIamPolicy resourcemanager.folders.get
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.services.enable
iam.roles.create
iam.roles.list
iam.serviceAccounts.actAs
compute.projects.get
compute.projects.setCommonInstanceMetadata”
适用于服务器的 Defender microsoft-defender-for-servers
azure-arc-for-servers-onboard
获取和列出计算引擎的只读访问权限
resources roles/compute.viewer
roles/iam.serviceAccountTokenCreator
roles/osconfig.osPolicyAssignmentAdmin
roles/osconfig.osPolicyAssignmentReportViewer
Defender for Database defender-for-databases-arc-ap 适用于数据库的 Defender ARC 自动预配的权限
roles/compute.viewer
roles/iam.workloadIdentityUser
roles/iam.serviceAccountTokenCreator
roles/osconfig.osPolicyAssignmentAdmin
roles/osconfig.osPolicyAssignmentReportViewer
Defender CSPM

Defender for Storage
data-security-posture-storage Defender for Cloud 扫描程序发现 GCP 存储桶和访问 GCP 存储桶中的数据的权限
storage.objects.list
storage.objects.get
storage.buckets.get
Defender CSPM

Defender for Storage
data-security-posture-storage Defender for Cloud 扫描程序发现 GCP 存储桶和访问 GCP 存储桶中的数据的权限
storage.objects.list
storage.objects.get
storage.buckets.get
Defender CSPM microsoft-defender-ciem 获取组织资源详细信息的权限。
resourcemanager.folders.getIamPolicy
resourcemanager.folders.list
resourcemanager.organizations.get
resourcemanager.organizations.getIamPolicy
storage.buckets.getIamPolicy
Defender CSPM

适用于服务器的 Defender
MDCAgentlessScanningRole 无代理磁盘扫描的权限:
compute.disks.createSnapshot
compute.instances.get
Defender CSPM

Defender for Servers
cloudkms.cryptoKeyEncrypterDecrypter 授予对现有 GCP KMS 角色的权限,以支持扫描使用 CMEK 加密的磁盘
Defender CSPM

Defender for Containers
mdc-containers-artifact-assess 从 GAR 和 GCR 扫描图像的权限。
Roles/artifactregistry.reader
Roles/storage.objectViewer
Defender for Containers mdc-containers-k8s-operator 从 GKE 群集收集数据的权限。 更新 GKE 群集以支持 IP 限制。
Roles/container.viewer
MDCGkeClusterWriteRole container.clusters.update*
Defender for Containers microsoft-defender-containers 创建和管理日志接收器来将日志路由到 Cloud Pub/Sub 主题的权限。
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
Defender for Containers ms-defender-containers-stream 允许日志记录将日志发送到 pub sub 的权限:
pubsub.subscriptions.consume
pubsub.subscriptions.get

后续步骤

本文介绍了 Defender for Cloud 如何使用 Azure RBAC 将权限分配给用户,并为每个角色确定允许的操作。 现在,已熟悉监视订阅安全状态所需的角色分配,请编辑安全策略,并应用建议,了解如何: