你当前正在访问 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 这些权限允许 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
获取和列出计算引擎的只读访问权限
resources 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*
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 将权限分配给用户,并为每个角色确定允许的操作。 现在,已熟悉监视订阅安全状态所需的角色分配,请编辑安全策略,并应用建议,了解如何: