

# 在 DynamoDB 中启用 ABAC
<a name="abac-enable-ddb"></a>

对于大多数 Amazon Web Services 账户，ABAC 在默认情况下处于启用状态。使用 [DynamoDB 控制台](https://console.amazonaws.cn/dynamodb/)，可以确认是否为您的账户启用了 ABAC。为此，请确保使用具有 [dynamodb:GetAbacStatus](#required-permissions-abac) 权限的角色打开 DynamoDB 控制台。然后，打开 DynamoDB 控制台的**设置**页面。

如果您未看到**基于属性的访问权限控制**卡片，或者该卡片的状态显示为**打开**，则表示为您的账户启用了 ABAC。但是，如果您看到**基于属性的访问权限控制**卡片的状态为**关闭**（如下图所示），则表示未为您的账户启用 ABAC。

## 基于属性的访问权限控制 - 未启用
<a name="abac-disabled-image"></a>

![\[DynamoDB 控制台上显示基于属性的访问权限控制卡片的设置页面。\]](http://docs.amazonaws.cn/amazondynamodb/latest/developerguide/images/ddb-console-settings-page.png)


对于那些在基于身份的策略或其它策略中指定的基于标签的条件仍需要审计的 Amazon Web Services 账户，尚未启用 ABAC。如果未为您的账户启用 ABAC，则会评估策略中用于对 DynamoDB 表或索引执行操作的基于标签的条件，就好像您的资源或 API 请求不存在任何标签一样。为您的账户启用 ABAC 后，将根据附加到您的表或 API 请求的标签，来评估您账户的策略中基于标签的条件。

要为您的账户启用 ABAC，我们建议您首先按照[策略审计](#policy-audit-for-abac)一节中所述来审计您的策略。然后，在您的 IAM 策略中包含 [ABAC 所需的权限](#required-permissions-abac)。最后，执行[在控制台中启用 ABAC](#abac-enable-console) 中介绍的步骤，以便在当前区域中为您的账户启用 ABAC。启用 ABAC 后，可以在选择加入后接下来的七个日历日内选择退出。

**Topics**
+ [在启用 ABAC 之前审计策略](#policy-audit-for-abac)
+ [启用 ABAC 所需的 IAM 权限](#required-permissions-abac)
+ [在控制台中启用 ABAC](#abac-enable-console)

## 在启用 ABAC 之前审计策略
<a name="policy-audit-for-abac"></a>

在为您的账户启用 ABAC 之前，请审计您的策略，以确认您账户的策略中可能存在的基于标签的条件已按预期设置。在启用 ABAC 后，审计您的策略将有助于避免因 DynamoDB 工作流程的授权变更而出现意外。要查看将基于属性的条件与标签结合使用的示例，以及实施 ABAC 之前和之后的行为，请参阅[将 ABAC 与 DynamoDB 表和索引结合使用的示例使用案例示例](abac-example-use-cases.md)。

## 启用 ABAC 所需的 IAM 权限
<a name="required-permissions-abac"></a>

您需要 `dynamodb:UpdateAbacStatus` 权限才能在当前区域中为您的账户启用 ABAC。要确认是否为您的账户启用了 ABAC，您还必须拥有 `dynamodb:GetAbacStatus` 权限。有了此权限，您就可以查看任何区域中账户的 ABAC 状态。除了访问 DynamoDB 控制台所需的权限外，您还需要这些权限。

以下 IAM 策略授予在当前区域中为账户启用 ABAC 和查看其状态的权限。

```
{
"version": "2012-10-17", 		 	 	 &TCX5-2025-waiver;
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:UpdateAbacStatus",
                "dynamodb:GetAbacStatus"
             ],
            "Resource": "*"
        }
    ]
}
```

## 在控制台中启用 ABAC
<a name="abac-enable-console"></a>

1. 登录 Amazon Web Services 管理控制台，并打开 DynamoDB 控制台：[https://console.aws.amazon.com/dynamodb/](https://console.amazonaws.cn/dynamodb/)。

1. 从顶部导航窗格中，选择要为其启用 ABAC 的区域。

1. 在左侧导航窗格中，选择**设置**。

1. 在**设置**页面上，执行以下操作：

   1. 在**基于属性的访问权限控制**卡片中，选择**启用**。

   1. 在**确认基于属性的访问权限控制设置**框中，选择**启用**以确认您的选择。

      这将为当前区域启用 ABAC，并且**基于属性的访问权限控制**卡片将显示状态**打开**。

      如果您想在控制台上启用 ABAC 后选择退出，可以在选择加入后的七个日历日内选择退出。要选择退出，请在**设置**页面上的**基于属性的访问权限控制**卡片中选择**禁用**。
**注意**  
更新 ABAC 的状态是一项异步操作。如果未立即评估策略中的标签，则可能需要等待一些时间，因为应用更改是最终一致的。