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

用户角色和权限

Microsoft Defender for Cloud 使用 Azure 基于角色的访问控制(Azure 基于角色的访问控制)提供内置角色。 可以将这些角色分配给 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 预配 Azure Kubernetes 服务 (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
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 Platforms (AWS) 连接器时,Defender for Cloud 会创建角色并分配 GCP 项目的权限。 下表显示了 GCP 项目上按每个计划分配的角色和权限。

Defender for Cloud 计划 创建的角色 在 AWS 帐户上分配的权限
Defender CSPM MDCCspmCustomRole 这些权限允许 CSPM 角色发现和扫描组织中的资源:

允许角色查看组织、项目和文件夹:
resourcemanager.folders.get
resourcemanager.folders.list resourcemanager.folders.getIamPolicy
resourcemanager.organizations.get
resourcemanager.organizations.getIamPolicy
storage.buckets.getIamPolicy

允许对新项目执行自动预配过程并删除已删除的项目:
resourcemanager.projects.get
resourcemanager.projects.list

允许该角色启用用于发现资源的 Google Cloud 服务:
serviceusage.services.enable

用于创建和列出 IAM 角色:
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
获取和列出计算引擎资源的只读访问权限:
compute.viewer
iam.serviceAccountTokenCreator
osconfig.osPolicyAssignmentAdmin
osconfig.osPolicyAssignmentReportViewer
Defender for Database defender-for-databases-arc-ap 适用于数据库的 Defender ARC 自动预配的权限
compute.viewer
iam.workloadIdentityUser
iam.serviceAccountTokenCreator
osconfig.osPolicyAssignmentAdmin
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 扫描图像的权限。
artifactregistry.reader
storage.objectViewer
Defender for Containers mdc-containers-k8s-operator 从 GKE 群集收集数据的权限。 更新 GKE 群集以支持 IP 限制。

container.viewer

MDCGkeClusterWriteRole:
container.clusters.update*

MDCGkeContainerResponseActionsRole:
container.pods.update
container.pods.delete
container.networkPolicies.create
container.networkPolicies.update
container.networkPolicies.delete
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 基于角色的访问控制向用户分配权限,并为每个角色确定允许的操作。 现在,已熟悉监视订阅安全状态所需的角色分配,请编辑安全策略,并应用建议,了解如何: