View a markdown version of this page

Amazon Inspector 策略语法和示例 - AWS Organizations

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

Amazon Inspector 策略语法和示例

Amazon Inspector 策略遵循标准化的 JSON 语法,该语法定义了如何在您的组织中启用和配置 Amazon Inspector。Amazon Inspector 策略是一份根据 AWS 组织管理策略语法结构的 JSON 文档。它定义了哪些组织实体将自动启用 Amazon Inspector。

Amazon Inspector 政策的关键注意事项

在创建 Amazon Inspector 策略之前,请先了解有关策略语法的以下要点:

  • 策略中包含的每种扫描类型都需要同时使用enable_in_regionsdisable_in_regions列表,但它们可以是空数组 ("@@assign": [])。

  • 处理有效策略时,disable_in_regions优先于enable_in_regions。如果两个列表中都出现一个区域,则该区域的扫描将被禁用。

  • 除非明确限制,否则子策略可以使用继承运算符 (@@assign@@append,,@@remove) 修改父策略。

  • ALL_SUPPORTED名称包括当前和将来可用 Amazon Inspector 的 AWS 区域。

  • 区域名称必须是支持 Amazon Inspector 的有效 AWS 区域。无效的区域名称将导致验证错误。

基本策略结构

Amazon Inspector 政策使用这种基本结构。每种扫描类型都需要同时使用enable_in_regionsdisable_in_regions,即使其中一个是空数组也是如此。

{ "inspector": { "enablement": { "ec2_scanning": { "enable_in_regions": { "@@assign": ["us-east-1", "us-west-2"] }, "disable_in_regions": { "@@assign": ["eu-west-1"] } } } } }

策略组件

Amazon Inspector 政策包含以下关键组成部分:

inspector

Amazon Inspector 政策文件的顶级密钥,这是所有亚马逊 Inspector 政策所必需的。

enablement

定义如何在整个组织中启用 Amazon Inspector,并包含扫描类型配置。

Regions (Array of Strings)

指定应自动启用 Amazon Inspector 的区域。

扫描类型

扫描类型 Key 必填
Lambda 标准扫描 lambda_standard_scanning
Lambda 代码扫描 lambda_standard_scanning.lambda_code_scanning
EC2 扫描 ec2_scanning
ECR 扫描 ecr_scanning
代码仓库扫描 code_repository_scanning

每种扫描类型都是可选的,仅包括要配置的扫描类型。但是,对于您包含的每种扫描类型,enable_in_regionsdisable_in_regions都是必填项。

亚马逊 Inspector 政策示例

以下示例演示了常见的 Amazon Inspector 策略配置。

示例 1 — 在组织范围内启用 Amazon Inspector

以下示例us-west-2为组织根目录中的us-east-1所有账户启用 Amazon Inspector。

创建 inspector-policy-enable.json 文件:

{ "inspector": { "enablement": { "lambda_standard_scanning": { "enable_in_regions": { "@@assign": [ "us-east-1", "us-west-2" ] }, "disable_in_regions": { "@@assign": [ "eu-west-1" ] }, "lambda_code_scanning": { "enable_in_regions": { "@@assign": [ "us-east-1", "us-west-2" ] }, "disable_in_regions": { "@@assign": [ "eu-west-1" ] } } }, "ec2_scanning": { "enable_in_regions": { "@@assign": [ "us-east-1", "us-west-2" ] }, "disable_in_regions": { "@@assign": [ "eu-west-1" ] } }, "ecr_scanning": { "enable_in_regions": { "@@assign": [ "us-east-1", "us-west-2" ] }, "disable_in_regions": { "@@assign": [ "eu-west-1" ] } }, "code_repository_scanning": { "enable_in_regions": { "@@assign": [ "us-east-1", "us-west-2" ] }, "disable_in_regions": { "@@assign": [ "eu-west-1" ] } } } } }

当连接到根目录时,组织中的所有账户都会自动启用 Amazon Inspector,其扫描结果可供亚马逊检查员授权的管理员使用。

创建并附加策略:

POLICY_ID=$(aws organizations create-policy \ --content file://inspector-policy-enable.json \ --name InspectorOrgPolicy \ --type INSPECTOR_POLICY \ --description "Inspector organization policy to enable all resources in IAD and PDX." \ --query 'Policy.PolicySummary.Id' \ --output text) aws organizations attach-policy --policy-id $POLICY_ID --target-id <root-id>

任何加入组织的新账户都会自动继承启用。

如果已分离,现有账户将保持启用状态,但是 future 账户不会自动启用:

aws organizations detach-policy --policy-id $POLICY_ID --target-id <root-id>

示例 2 — 为特定 OU 启用 Amazon Inspector

创建 inspector-policy-eu-west-1.json 文件:

{ "inspector": { "enablement": { "lambda_standard_scanning": { "enable_in_regions": { "@@assign": [ "eu-west-1" ] }, "disable_in_regions": { "@@assign": [ "eu-west-2" ] }, "lambda_code_scanning": { "enable_in_regions": { "@@assign": [ "eu-west-1" ] }, "disable_in_regions": { "@@assign": [ "eu-west-2" ] } } }, "ec2_scanning": { "enable_in_regions": { "@@assign": [ "eu-west-1" ] }, "disable_in_regions": { "@@assign": [ "eu-west-2" ] } }, "ecr_scanning": { "enable_in_regions": { "@@assign": [ "eu-west-1" ] }, "disable_in_regions": { "@@assign": [ "eu-west-2" ] } }, "code_repository_scanning": { "enable_in_regions": { "@@assign": [ "eu-west-1" ] }, "disable_in_regions": { "@@assign": [ "eu-west-2" ] } } } } }

将其附加到 OU 以确保中的所有生产账户都eu-west-1将启用 Amazon Inspector 并将其关联到 Amazon Inspector 委托的管理员:

aws organizations update-policy --policy-id $POLICY_ID --content file://inspector-policy-eu-west-1.json --description "Inspector organization policy - Enable all (eu-west-1)" aws organizations attach-policy --policy-id $POLICY_ID --target-id ou-aaaa-12345678

OU 之外的账户不受影响。