

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

# AI 服务选择退出策略语法和示例
<a name="orgs_manage_policies_ai-opt-out_syntax"></a>

本主题介绍人工智能（AI）服务选择退出策略语法并提供示例。

## AI 服务选择退出策略的语法
<a name="ai-opt-out-policy-syntax-reference"></a>

AI 服务选择退出策略是一个纯文本文件，根据 [JSON](http://json.org) 的规则设置结构。AI 服务选择退出策略的语法遵循管理策略类型的语法。有关该语法的完整讨论，请参阅[了解管理策略继承](orgs_manage_policies_inheritance_mgmt.md)。本主题重点介绍如何将该常规语法应用于 AI 服务选择退出策略类型的特定要求。

**重要**  
本部分中讨论的值的大写十分重要。使用大写和小写字母输入值，如本主题所示。如果您使用意外的大写，则策略不起作用。

以下策略显示了基本的 AI 服务选择退出策略语法。如果此示例直接附加到账户，则该账户将被明确选择退出一个服务，然后选择启用另一个服务。从更高级别（OU 或根策略）继承的策略可以选择启用或选择退出其他服务。

```
{
    "services": {
        "rekognition": {
            "opt_out_policy": {
                "@@assign": "optOut"
            }
        },
        "lex": {
            "opt_out_policy": {
                "@@assign": "optIn"
            }
        }
    }
}
```

设想附加到组织根的以下策略示例。它设置组织选择退出所有 AI 服务的默认设置。这将自动包括任何未明确豁免的 AI 服务，包括 AWS 可能会在以后部署的任何 AI 服务。您可以将子女政策附加到账户， OUs 也可以直接将子政策附加到账户，以覆盖除Amazon Comprehend之外的任何 AI 服务的此设置。以下示例中的第二个条目使用 `@@operators_allowed_for_child_policies` 将该设置设为 `none` 以防止覆盖。示例中的第三个条目在整个组织范围内为 Amazon Rekognition 提供豁免。它在整个组织中选择启用该服务，但策略确实允许在适当的情况下覆盖子策略。

```
{
    "services": {
        "default": {
            "opt_out_policy": {
                "@@assign": "optOut"
            }
        },
        "comprehend": {
            "opt_out_policy": {
                "@@operators_allowed_for_child_policies": ["@@none"],
                "@@assign": "optOut"
            }
        },
        "rekognition": {
            "opt_out_policy": {
                "@@assign": "optIn"
            }
        }
    }
}
```

AI 服务选择退出策略语法包括以下元素：
+ `services` 元素。AI 服务选择退出策略由此固定名称标识为最外层包含元素的 JSON。

  AI 服务选择退出策略可以在 `services` 元素下拥有一个或多个语句。每个语句包含以下元素：
  + 标识 AWS AI *服务的服务名称密钥*。以下键名称是此字段的有效值：
    + **`default`** – 代表**所有**当前可用的 AI 服务，并隐式和自动包括将来可能添加的任何 AI 服务。
    + `aiops`
    + `aidevops`
    + `awssupplychain`
    + `chimesdkvoiceanalytics`
    + `cloudwatch`
    + `codeguruprofiler`
    + `codewhisperer`
    + `comprehend`
    + `connect`
    + `connectamd`
    + `connectoptimization`
    + `contactlens`
    + `datazone`
    + `dms`
    + `entityresolution`
    + `frauddetector`
    + `glue`
    + `guardduty`
    + `lex`
    + `polly`
    + `q`
    + `quicksightq`
    + `rekognition`
    + `securitylake`
    + `textract`
    + `transcribe`
    + `transform`
    + `translate`
    + `workspaces`
    + `securityhub`

    由服务名称键标识的每个策略语句都可以包含以下元素：
    + `opt_out_policy` 密钥。此键必须存在。这是您可以放置在服务名称键下的唯一键。

      `opt_out_policy` 键***仅***包含具有以下值之一的 `@@assign` 运算符：
      + `optOut` – 您可以选择退出指定 AI 服务的内容使用。
      + `optIn` – 您可以选择启用指定 AI 服务的内容使用。
**注意**  
您不能在 AI 服务选择退出策略中使用 `@@append` 和 `@@remove` 继承运算符。
您不能在 AI 服务选择退出策略中使用 `@@enforced_for` 运算符。
  + 在任何级别上，您都可以指定 `@@operators_allowed_for_child_policies` 运算符来控制子策略可以执行哪些操作来覆盖父策略施加的设置。可以指定以下值之一：
    + `@@assign` – 此策略的子策略可以通过 `@@assign` 运算符使用其他值来覆盖继承值。
    + `@@none` – 此策略的子策略不能更改该值。

    `@@operators_allowed_for_child_policies` 的行为取决于您放置它的位置。您可以使用以下位置：
    + `services` 键下 – 控制子策略是否可以添加或更改有效策略中的服务列表。
    + 在特定 AI 服务的键或 `default` 键下 – 控制子策略是否可以添加或更改此特定条目下的键列表。
    + 特定服务的 `opt_out_policies` 键下 – 控制子策略是否只能更改此特定服务的设置。

## AI 服务选择退出策略示例
<a name="ai-opt-out-policy-examples"></a>

下面的示例策略仅供参考。

### 示例 1：选择退出组织中所有账户的所有 AI 服务
<a name="ai-opt-out-policy-example-1"></a>

以下示例显示了一个策略，您可以将该策略附加到组织的根，以选择退出组织中的账户的 AI 服务。

**提示**  
如果您使用示例右上角的复制按钮复制以下示例，则副本不包括行号。它已准备好粘贴。

```
    | {
    |     "services": {
[1] |         "@@operators_allowed_for_child_policies": ["@@none"],
    |         "default": {
[2] |             "@@operators_allowed_for_child_policies": ["@@none"],
    |             "opt_out_policy": {
[3] |                 "@@operators_allowed_for_child_policies": ["@@none"],
    |                 "@@assign": "optOut"
    |             }
    |         }
    |     }
    | }
```
+ [1] – `services` 下的 `"@@operators_allowed_for_child_policies": ["@@none"]` 会阻止任何子策略为单个服务添加除已存在 `default` 部分之外的任何新部分。`Default` 是表示“所有 AI 服务”的占位符。
+ [2] – `default` 下的 `"@@operators_allowed_for_child_policies": ["@@none"]` 会阻止任何子策略添加除已存在 `opt_out_policy` 部分之外的任何新部分。
+ [3] – `opt_out_policy` 下的 `"@@operators_allowed_for_child_policies": ["@@none"]` 会阻止子策略更改 `optOut` 设置的值或添加任何其他设置。

### 示例 2：为所有服务设置组织默认设置，但允许子策略覆盖单个服务的设置
<a name="ai-opt-out-policy-example-2"></a>

以下示例策略为所有 AI 服务设置了组织范围内的默认设置。`default` 的值阻止子策略更改 `optOut` 服务的 `default` 值，它是所有 AI 服务的占位符。如果通过将此策略附加到根策略或 OU 而将其作为父策略应用，则子策略仍然可以更改单个服务的选择退出设置，如第二个策略所示。
+ 因为 `services` 键没有 `"@@operators_allowed_for_child_policies": ["@@none"]`，子策略可以为单个服务添加新部分。
+ `default` 下的 `"@@operators_allowed_for_child_policies": ["@@none"]` 会阻止任何子策略添加除已存在 `opt_out_policy` 部分之外的任何新部分。
+ `opt_out_policy` 下的 `"@@operators_allowed_for_child_policies": ["@@none"]` 会阻止子策略更改 `optOut` 设置的值或添加任何其他设置。

**组织根用户 AI 服务选择退出父策略**

```
{
    "services": {
        "default": {
            "@@operators_allowed_for_child_policies": ["@@none"],
            "opt_out_policy": {
                "@@operators_allowed_for_child_policies": ["@@none"],
                "@@assign": "optOut"
            }
        }
    }
}
```

以下示例策略假定上一个示例策略已附加到组织根或父 OU，并且您将此示例附加到受父策略影响的账户。它会覆盖默认的选择退出设置，并明确仅选择启用 Amazon Lex 服务。

**AI 服务选择退出子策略**

```
{
    "services": {
        "lex": {
            "opt_out_policy": {
                "@@assign": "optIn"
            }
        }
    }
}
```

由此产生的有效政策 AWS 账户 是，账户只能选择加入 Amazon Lex，而选择退出所有其他 AWS AI 服务，因为继承了父政策的`default`选择退出设置。

### 示例 3：为单个服务定义组织范围内的 AI 服务选择退出策略
<a name="ai-opt-out-policy-example-3"></a>

以下示例显示了 AI 服务选择退出策略，该策略定义了单个 AI 服务的 `optOut` 设置。如果此策略附加到组织的根，则会阻止任何子策略覆盖此服务的 `optOut` 设置。本政策未涉及其他服务，但可能会受到其他 OUs 或账户中儿童政策的影响。

```
{
    "services": {
        "rekognition": {
            "opt_out_policy": {
                "@@assign": "optOut",
                "@@operators_allowed_for_child_policies": ["@@none"]
            }
        }
    }
}
```