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