

# DynamoDB での ABAC の有効化
<a name="abac-enable-ddb"></a>

ほとんどの AWS アカウントでは、ABAC はデフォルトで有効になっています。[DynamoDB コンソール](https://console.aws.amazon.com/dynamodb/)を使用して、アカウントで ABAC が有効になっているかどうかを確認できます。これを行うには、必ず [dynamodb:GetAbacStatus](#required-permissions-abac) アクセス許可を持つロールで DynamoDB コンソールを開くようにします。次に、DynamoDB コンソールの **[設定]** ページを開きます。

**[属性ベースのアクセス制御]** カードが表示されない場合、またはカードのステータスが **[オン]** と表示される場合は、アカウントで ABAC が有効になっていることを意味します。ただし、次の図に示すように、ステータスが **[オフ]** の **[属性ベースのアクセス制御]** カードが表示された場合、アカウントで ABAC は有効になっていません。

## 属性ベースのアクセス制御 – 有効になっていません
<a name="abac-disabled-image"></a>

![\[[属性ベースのアクセス制御] カードが表示された DynamoDB コンソールの [設定] ページ。\]](http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/images/ddb-console-settings-page.png)


ABAC は、アイデンティティベースのポリシーまたは他のポリシーで指定されたタグベースの条件を引き続き監査する必要がある AWS アカウントに対して有効になっていません。アカウントで ABAC が有効になっていない場合、DynamoDB テーブルまたはインデックスを操作することを目的としたポリシーのタグベースの条件は、リソースまたは API リクエストにタグが存在しないかのように評価されます。アカウントで ABAC が有効になっている場合、アカウントのポリシーのタグベースの条件は、テーブルまたは API リクエストにアタッチされたタグを考慮して評価されます。

アカウントの ABAC を有効にするには、[ポリシー監査](#policy-audit-for-abac) セクションの説明に従って、まずポリシーを監査することをお勧めします。次に、IAM ポリシーに [ABAC に必要なアクセス許可](#required-permissions-abac)を含めます。最後に、「[コンソールでの ABAC の有効化](#abac-enable-console)」で説明されているステップを実行して、現在のリージョンでアカウントの ABAC を有効にします。ABAC を有効にした後、オプトインから 7 暦日以内にオプトアウトできます。

**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 実装の前後の動作については、「[DynamoDB テーブルとインデックスで ABAC を使用する例ユースケースの例](abac-example-use-cases.md)」を参照してください。

## ABAC を有効にするために必要な IAM アクセス許可
<a name="required-permissions-abac"></a>

現在のリージョンでアカウントの ABAC を有効にするには、`dynamodb:UpdateAbacStatus` アクセス許可が必要です。アカウントで 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. AWS マネジメントコンソール にサインインして DynamoDB コンソール ([https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)) を開きます。

1. 上部のナビゲーションペインで、ABAC を有効にするリージョンを選択します。

1. 左のナビゲーションペインで、**[設定]** を選択します。

1. **[Settings]** (設定) ページで、以下の操作を行います。

   1. **[属性ベースのアクセス制御]** カードで、**[有効化]** を選択します。

   1. **[属性ベースのアクセス制御設定の確認]** ボックスで、**[有効化]** を選択して選択を確定します。

      これにより、現在のリージョンの ABAC が有効になり、**[属性ベースのアクセス制御]** カードに **[オン]** のステータスが表示されます。

      コンソールで ABAC を有効にした後にオプトアウトする場合は、オプトインから 7 暦日以内にオプトアウトできます。オプトアウトするには、**[設定]** ページの **[属性ベースのアクセス制御]** カードで **[無効化]** を選択します。
**注記**  
ABAC のステータスの更新は非同期オペレーションです。ポリシーのタグがすぐに評価されない場合は、しばらく待つ必要がある場合があります。変更の適用は最終的に整合します。