

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 疑難排解 DynamoDB 資料表與索引的常見 ABAC 錯誤
<a name="abac-troubleshooting"></a>

本主題提供在 DynamoDB 資料表或索引中實作 ABAC 時，可能遇到的常見錯誤與問題的疑難排解建議。

## 政策中使用服務特定條件金鑰會導致錯誤
<a name="abac-troubleshooting-service-specific-keys"></a>

服務特定條件金鑰不被視為有效的條件金鑰。若在政策中使用此類金鑰，將導致錯誤。若要解決此問題，請將服務特定條件金鑰替換為合適的[條件金鑰，以在 DynamoDB 中實作 ABAC](attribute-based-access-control.md#condition-keys-implement-abac)。

例如，假設您在執行 [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html) 請求的[內嵌政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies)中使用了 `dynamodb:ResourceTag` 條件金鑰。假設請求因 `AccessDeniedException` 而失敗。下列範例顯示包含 `dynamodb:ResourceTag` 條件金鑰的錯誤內嵌政策。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:PutItem"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*",
            "Condition": {
                "StringEquals": {
                    "dynamodb:ResourceTag/Owner": "John"
                }
            }
        }
    ]
}
```

------

若要解決此問題，請將 `dynamodb:ResourceTag` 條件金鑰替換為 `aws:ResourceTag`，如下例所示。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:PutItem"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Owner": "John"
                }
            }
        }
    ]
}
```

------

## 無法停用 ABAC
<a name="abac-troubleshooting-unable-opt-out"></a>

如果您的帳戶已透過 啟用 ABAC 支援，您將無法透過 DynamoDB 主控台選擇退出 ABAC。若要停用，請聯絡 [支援](https://console.aws.amazon.com/support)。

僅當 *only if* 下列條件成立時，您才可自行停用 ABAC：
+ 您已使用[透過 DynamoDB 主控台選擇加入](abac-enable-ddb.md#abac-enable-console)的自助式流程。
+ 您在選擇加入後七天內停用。