View a markdown version of this page

将 Amazon Inspector 配置为与微软 Azure 集成 - Amazon Inspector

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Amazon Inspector 配置为与微软 Azure 集成

配置 Azure 环境后,在 Amazon Inspector 中创建一个连接器,开始扫描 Azure 资源中是否存在漏洞。

创建 Azure 连接器
  1. 打开 Amazon Inspector 控制台,网址为https://console.aws.amazon.com/inspector/v2/home。

  2. 在导航窗格中,选择集成。

  3. 选择 Create connector (创建连接器)。

  4. 提供以下信息:

    • 名称-此连接器的唯一名称。有关名称和描述长度限制,请参阅 Amazon Inspector API 参考中的 CreateConnector 操作。

    • 描述(可选)-此连接器的描述。

    重要

    名称和描述用于识别您的内容,我们建议您不要在其中包含敏感、机密或个人身份信息 (PII)。

    • Azure 租户 ID-您的Microsoft Entra ID租户标识符。可在 Azure 门户的 “属性” 下Microsoft Entra ID找到。

  5. 选择要启用的功能:

    • 虚拟机扫描(Amazon Inspector 虚拟机扫描器代理部署到 Azure 虚拟机)

    • 功能应用程序扫描(代码依赖性分析)

    • ACR 图像扫描(容器镜像漏洞检测)

    您可以启用任何组合。稍后可以通过更改功能UpdateConnector。

  6. 配置您的监控目标:

    • Azure 订阅-选择是监控租户中的所有订阅还是指定个人订阅 ID。

    • Azure 区域-选择是启用所有 Azure 区域还是选择特定区域。

  7. 配置录制源:

    选择现有的录制源,或创建一个新的录制源。录制源 ARN 是 API 中的必填字段 () inspector2:CreateConnector。

  8. 复制生成的 Azure 安装脚本,在 Azure 环境中运行该脚本(请参阅配置微软 Azure 以与 Amazon Inspector 集成),然后选择 “创建连接器”。

托管 Amazon Inspector 虚拟机扫描仪

如果你启用了虚拟机扫描,Amazon Inspector 会使用 Amazon EC2 Systems Manager Automation 在你的 Azure 虚拟机上部署和管理 Amazon Inspector 虚拟机扫描器代理。使用托管部署:

  • 无需手动安装。

  • 代理会自动保持最新状态。

  • Amazon Inspector 管理整个生命周期(安装、更新、运行状况监控)。

Amazon Inspector 使用 Amazon EC2 Systems Manager Automation 来部署和管理代理。

要启用虚拟机扫描,您必须在账户中创建以下 IAM 资源。

IAM OIDC 身份提供商

使用以下配置为创建 IAM OIDC 身份Microsoft Entra ID提供商:

  • 发行人网址:https://sts.windows.net/tenant-id/

  • 客户端 ID 列表:api://app-id,api://AzureADTokenExchange

  • 指纹:一个 40 个字符的字符串,全部为零(0重复 40 次)。 AWS STS 通过 JWKS 端点而不是指纹值验证令牌。

Inspector2VmScannerRole-tenant-id

由 Azure 虚拟机上运行的 Amazon Inspector 虚拟机扫描器代理用于向亚马逊 Inspector 发送扫描遥测数据。此角色通过身份提供商使用 OIDC Web 联合Microsoft Entra ID身份验证。

信任政策:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::account-id:oidc-provider/sts.windows.net/tenant-id/" }, "Action": "sts:AssumeRoleWithWebIdentity" } ] }

权限策略 (TelemetryPolicy):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "inspector2-telemetry:*", "Resource": "*" } ] }

标签:

  • inspector-managed = true

Inspector2SSMFederationRole-tenant-id

启用 OIDC 与 Azure 的联合,以实现安全的跨云身份验证。该角色由 AssumeRole 和担任 DispatchRole,由 Amazon EC2 Systems Manager 担任,负责获取用于 Azure 操作的网络身份令牌。

信任政策:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:root" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:PrincipalTag/caller": "SSM" }, "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::account-id:role/Inspector2SSMAssumeRole-tenant-id", "arn:aws:iam::account-id:role/Inspector2SSMDispatchRole-tenant-id" ] } } }, { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

权限策略 (FederationPolicy):

{ "Version": "2012-10-17", "Statement": [ { "Condition": { "ForAnyValue:StringEquals": { "sts:IdentityTokenAudience": [ "api://AzureADTokenExchange" ] } }, "Action": [ "sts:GetWebIdentityToken", "sts:TagGetWebIdentityToken" ], "Resource": "*", "Effect": "Allow" } ] }

标签:

  • caller = SSM

  • inspector-managed = true

Inspector2SSMAssumeRole-tenant-id

执行 Amazon EC2 Systems Manager 自动化,将 Azure 虚拟机作为托管实例加载。该角色创建和管理混合激活,将角色传递给 Amazon EC2 Systems Manager,并检索自动化文档。

信任政策:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }

权限策略 (AssumeRolePolicy):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::account-id:role/Inspector2SSMFederationRole-tenant-id" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/AmazonEC2RunCommandRoleForManagedInstances", "Condition": { "StringEquals": { "iam:PassedToService": "ssm.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:CreateActivation", "ssm:DeleteActivation", "ssm:DescribeActivations", "ssm:DescribeInstanceInformation", "ssm:PutConfigurePackageResult", "iam:ListRoleTags" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ssm:AddTagsToResource", "Resource": [ "arn:aws:ssm:*:account-id:activation/*", "arn:aws:ssm:*:account-id:managed-instance/*" ] }, { "Effect": "Allow", "Action": "ssm:GetDocument", "Resource": [ "arn:aws:ssm:*:*:document/AWS-InstallDistributorPackageOnAzure", "arn:aws:ssm:*:*:document/AWS-InstallSsmAgentOnAzure", "arn:aws:ssm:*::document/AmazonInspector2-InspectorVmScanner" ] }, { "Effect": "Allow", "Action": "ssm:GetCloudConnector", "Resource": "*" } ] }

标签:

  • caller = SSM

  • AzureTenantId = tenant-id

  • AzureApplicationId = app-id

  • inspector-managed = true

Inspector2SSMDispatchRole-tenant-id

解析 Azure 虚拟机目标并通过 Amazon EC2 Systems Manager Automation 调度 Amazon Inspector 虚拟机扫描器代理安装。此角色开始自动执行并将传递 AssumeRole 给 Amazon EC2 Systems Manager。

信任政策:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }

权限策略 (DispatchPolicy):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/Inspector2SSMAssumeRole-tenant-id", "Condition": { "StringEquals": { "iam:PassedToService": "ssm.amazonaws.com" } } }, { "Effect": "Allow", "Action": "ssm:StartAutomationExecution", "Resource": [ "arn:aws:ssm:*:*:document/AWS-InstallDistributorPackageOnAzure", "arn:aws:ssm:*:account-id:automation-execution/*" ] }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::account-id:role/Inspector2SSMFederationRole-tenant-id" }, { "Effect": "Allow", "Action": [ "ssm:DescribeInstanceInformation", "ssm:ListCloudConnectors", "ssm:GetCloudConnector", "iam:ListRoleTags" ], "Resource": "*" } ] }

标签:

  • caller = SSM

  • inspector-managed = true

Azure 应用程序注册必须将其应用程序 ID URI 设置为api://app-id。

每个目标 Azure 虚拟机都必须启用系统分配的托管身份。要自动为新虚拟机分配托管身份,请在 Azure 环境中使用 DeployIfNotExists策略。

有关 Amazon Inspector 虚拟机扫描器代理的更多信息,请参阅亚马逊 Inspector 虚拟机扫描器。

或者,您可以手动安装 Amazon Inspector 虚拟机扫描器代理。要在许多 Azure 虚拟机上大规模手动安装,请使用 Azure 虚拟机自定义扩展程序。有关说明,请参阅亚马逊 Inspector 虚拟机扫描器。

要将特定 Azure 虚拟机排除在扫描范围之外,请对该虚拟机应用以下标记:

  • 键:InspectorExclusion

  • 值:true

调整连接器的范围

创建连接器后,可以通过更改其监控的 Azure 订阅或 Azure 区域来调整其范围。如果您调整范围,则大多数更改将在大约 15 分钟内生效。

在调整范围之前,请注意以下几点:

  • 如果您向作用域中添加区域,则控制台会生成更新的安装脚本,用于在新区域中创建必要的 Event Hub 基础架构。

  • 如果存在与服务相关的连接器(通过创建 AWS Security Hub CSPM),则无法直接在 Amazon Inspector 中缩小其范围。 AWS Security Hub CSPM 改为在中修改作用域。

  • AWS Security Hub CSPM 连接器的范围永远不能小于 Amazon Inspector 中针对同一 Azure 租户的任何现有客户管理的连接器。

验证连接器

创建连接器后,Amazon Inspector 开始发现和扫描你的 Azure 资源。最长可能需要 24 小时才能显示出最初的调查结果。要验证连接器是否正常工作,请执行以下操作:

  1. 在 Amazon Inspector 控制台中,导航到 “摘要” 以确认已填充 Azure 资源数量。

  2. 导航到 “覆盖范围” 以验证 Azure 资源是否显示扫描状态。

  3. 导航到 “集成”,选择你与 Microsoft Azure 的集成,然后验证连接器运行状况是否显示出Active来。

  4. 要进行虚拟机扫描,请验证 Azure 虚拟机在 “覆盖范围” 视图中是否以 Amazon Inspector 虚拟机扫描器代理状态显示。

  5. 导航到查找结果并按资源类型筛选以查看 Azure 资源查找结果。

注意

连接器运行状况最终保持一致。出现权限或配置问题时,连接器状态会迅速更改为 “已降级”,并显示一条可操作的消息。但是,修复问题后,状态最长可能需要 24 小时才能恢复为 “已连接”。

  • 最近修复后的降级状态不一定表示问题持续存在。

  • 要实时了解记录失败,请查看命名空间中的 CloudWatch 指标。

问题排查

如果连接器状态显示错误或资源在 24 小时后未显示,请查看以下内容:

连接器显示错误状态

验证 Azure 应用程序注册是否具有正确的联合身份凭证,并且您的 AWS 账户中配置了 IAM 令牌发行者 URL。

无法录制某些 Azure 资源

该错误可能由于以下任何原因而发生:

  • Azure 环境不符合资源记录的先决条件。

  • 应用程序注册未获得管理员对 Microsoft Graph API 权限的同意。

  • 读者角色分配并未涵盖所有必需的范围。

  • Microsoft Entra ID租户没有所需的日志数据。

要解决该错误,请执行以下操作:

  1. 要确认您的环境符合所有要求,请查看将 Amazon Inspector 与微软 Azure 集成的先决条件。

  2. 经管理员同意,确认应用程序注册具有所需Microsoft Graph的 API 权限。

  3. 验证服务主体在租户根管理组范围内是否具有 Reader 角色。

资源未显示

确认事件中心正在接收事件。在 Azure 门户中检查事件中心指标并验证AWSConfig使用者组是否存在。

虚拟机未扫描

验证虚拟机是否与 Amazon EC2 Systems Manager 终端节点具有网络连接,并且正在运行支持的操作系统。

ACR 图像未出现

确认您的容器注册表上已启用诊断设置。

范围更改未生效

当你更改连接器范围以添加新的 Azure 区域时,控制台会重新生成安装脚本。您必须重新运行更新的脚本才能在新区域中配置 Event Hub 基础架构。

Amazon Inspector 如何处理资源标识符

通过为 Amazon Inspector 启用 Azure 集成 AWS Config,来自其他云提供商的资源标识符将作为与管理从其他云提供商收集的相应资源配置数据相关的元数据存储在 Amazon Inspector 和其他 AWS 服务中(视需要)。此类资源标识符不构成您的内容,我们建议您不要在其中包含敏感、机密或个人身份信息。

存储并使用来自您的互联云环境的以下标识符 AWS 来提供多云安全功能:

  • 资源标识符:Azure 租户 ID、订阅 ID、位置(区域)、资源 ID(资源组 ID 或名称、资源提供者、资源类型)

这些标识符之间的关系(包括资源之间的关系以及发现与资源的关系)也存储为服务元数据。 AWS 使用这些标识符进行资源关联、将发现结果与资源相关联、服务操作日志和重复数据消除。