你当前正在访问 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 将权限分配给用户,并为每个角色确定允许的操作。 现在,已熟悉监视订阅安全状态所需的角色分配,请编辑安全策略,并应用建议,了解如何:
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈