View a markdown version of this page

配置微软 Azure 以与 Amazon Inspector 集成 - Amazon Inspector

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

配置微软 Azure 以与 Amazon Inspector 集成

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

注意

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

安装脚本的用途

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

步骤 1:注册 Azure 应用程序

在中注册新应用程序Microsoft Entra ID。此应用程序充当 AWS 使用联合凭据向 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:配置联合身份证书

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

$ 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。 AWS 账户 AWS 创建连接器时会自动创建此服务相关角色。

  • 受众 —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 事件中心

AWS 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。使用此标签 AWS Config 可以自动发现事件中心。

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

注意

标签格式account-id是AWSConfig-account-id-region您的 12 位 AWS 账户标识符,region也是您创建连接器所在的 AWS 区域(例如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 区域),则控制台会重新生成安装脚本,以便在新区域中配置事件中心基础架构。必须重新运行更新的脚本。