View a markdown version of this page

配置微软 Azure 以与 Amazon Inspector 集成 - Amazon Inspector
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

配置微软 Azure 以与 Amazon Inspector 集成

Azure 设置过程将你的 Azure 环境配置为允许 Amazon Inspector 进行身份验证和接收资源变更通知。Amazon Inspector 在创建连接器期间会生成一个自定义的安装脚本。该脚本执行以下步骤。

注意

如果你已经完成了 Amazon Security Hub CSPM 或 Amazon Security Hub CSPM CSPM 的 Azure 环境设置,则会共享相同的应用程序注册。该脚本检测现有注册,并在不修改现有配置的情况下为 Amazon Inspector 添加所需的联合身份凭证。

安装脚本的用途

安装脚本执行一系列任务。以下各节描述了脚本执行的每项任务。如果您的组织限制脚本执行,则可以以本主题为指导,手动执行这些任务。

步骤 1:注册 Azure 应用程序

在中注册新应用程序Microsoft Entra ID。此应用程序充当 Amazon 使用联合凭据向 Azure 环境进行身份验证的身份。不需要客户机密钥。

$ az ad app create --display-name "AWSSecurityHubIntegration"

记下输出中的应用程序(客户端)ID(appId属性)。在 Amazon Inspector 控制台中创建连接器时,您将提供此值。

步骤 2:创建服务主体

为注册的应用程序创建服务主体。您可以使用 Azure 角色分配向服务主体授予权限。服务主体在你的 Azure 环境中执行操作。

$ az ad sp create --id application-client-id

上application-client-id一步中的应用程序(客户端)ID 在哪里。

步骤 3:配置联合身份证书

在应用程序上配置联合身份凭证,使其 Amazon 能够在没有客户端密钥的情况下进行身份验证。这将在和 Azure 之间建立 OIDC 信任 Amazon 。不存储任何长期存在的机密或凭证。

$ az ad app federated-credential create \ --id application-client-id \ --parameters '{ "name": "AWSConfigFederation", "issuer": "token-issuer-url", "subject": "arn:aws:iam::account-id:role/aws-service-role/thirdparty.config.amazonaws.com/AWSServiceRoleForConfigThirdParty", "audiences": ["api://AzureADTokenExchange"], "description": "Federation for AWS Config third-party cloud resource discovery" }'

关键值:

  • 颁发者-您来自 IAM 出站联合身份验证的令牌发行者 URL。这遵循格式https://uuid.tokens.sts.global.api.aws。

  • 主题-您的AWSServiceRoleForConfigThirdParty服务相关角色的 ARN。 Amazon Web Services 账户 Amazon 创建连接器时会自动创建此服务相关角色。

  • 受众 —api://AzureADTokenExchange(工作负载身份联合的标准值)。

步骤 4:分配读者角色

将读者角色分配给租户根管理组范围内的服务主体。这将授予对租户中所有订阅中的所有 Azure 资源的只读访问权限。

$ az role assignment create \ --assignee application-client-id \ --role "Reader" \ --scope "/providers/Microsoft.Management/managementGroups/tenant-id"
注意

如果此步骤失败,请在 Microsoft Entra ID > 属性中确认 Azure 资源的访问管理设置为 “是”。然后退出并重新登录以刷新您的令牌。

步骤 5:配置 Microsoft Graph API 权限

向应用程序授予所需Microsoft Graph的 API 权限(应用程序类型):Directory.Read.AllAuditLog.Read.All、和Policy.Read.All。然后授予管理员同意。

步骤 6:设置 Azure 事件中心

Amazon Config 使用 Azure 事件中心接收 Azure 环境中资源配置变更的近乎实时的通知。安装脚本创建 Event Hub 基础架构并对其进行标记以供发现。

$ az group create \ --name "aws-securityhub-integration" \ --location event-hub-region $ az eventhubs namespace create \ --resource-group "aws-securityhub-integration" \ --name "aws-securityhub-account-id" \ --location event-hub-region \ --sku Standard $ az eventhubs eventhub create \ --resource-group "aws-securityhub-integration" \ --namespace-name "aws-securityhub-account-id" \ --name "activitylog" \ --message-retention 1 \ --partition-count 4 $ az eventhubs eventhub consumer-group create \ --resource-group "aws-securityhub-integration" \ --namespace-name "aws-securityhub-account-id" \ --eventhub-name "activitylog" \ --name "AWSConfig"

创建事件中心后,标记要发现的命名空间并分配数据接收者角色:

$ az tag create \ --resource-id namespace-resource-id \ --tags "AWSConfig-account-id-region=activitylog" $ az role assignment create \ --assignee application-client-id \ --role "Azure Event Hubs Data Receiver" \ --scope namespace-resource-id

关键配置:

  • 命名空间 SKU-标准(使用者组必填)。

  • 事件中心名称 —activitylog.

  • 消费者群体 —AWSConfig.

  • 标签-AWSConfig-account-id-region 带值activitylog。使用此标签 Amazon Config 可以自动发现事件中心。

  • 角色分配-命名空间上的 Azure 事件中心数据接收器。

注意

标签格式account-id是AWSConfig-account-id-region您的 12 位 Amazon 账户标识符,region也是您创建连接器所在的 Amazon 区域(例如us-east-1)。

步骤 7:配置活动日志和Entra ID审计日志导出

将 Azure 配置为将活动日志和Entra ID审核日志导出到事件中心。

活动日志导出:

在每个订阅上配置诊断设置,将活动日志导出到事件中心。安装脚本会自动为所有受监控的订阅进行配置。活动日志捕获订阅级别的活动,包括角色分配和资源更改。

Entra ID审计日志导出:

将诊断设置配置Microsoft Entra ID为可将审核日志导出到同一个事件中心。导航至 Microsoft Entra ID> 监控 > 诊断设置 > 添加诊断设置。启用它们AuditLogs并将其路由到您的事件中心。

运行安装脚本

要运行 Azure 安装脚本,请执行以下操作:

  1. 打开已通过 Azure 租户身份验证的 Azure CLI 的终端 (az login)。您必须拥有目标订阅的 “贡献者” 和 “所有者” 权限。

  2. 从 Amazon Inspector 控制台复制安装脚本(在创建连接器期间生成)。

  3. 运行安装脚本。该脚本完成了上述 Azure 环境设置。

  4. 脚本成功完成后,返回 Amazon Inspector 控制台完成连接器的创建。

重要

如果您稍后更改连接器范围(例如,添加新的 Azure 区域),则控制台会重新生成安装脚本,以便在新区域中配置事件中心基础架构。必须重新运行更新的脚本。