

# 将基于身份的策略与 Amazon DynamoDB 结合使用
<a name="using-identity-based-policies"></a>

该主题涵盖了将基于身份的 AWS Identity and Access Management（IAM）策略与 Amazon DynamoDB 结合使用并提供了示例。示例说明账户管理员如何将权限策略附加到 IAM 身份（即用户、组和角色），从而授予对 Amazon DynamoDB 资源执行操作的权限。

本主题的各个部分涵盖以下内容：
+ [使用 Amazon DynamoDB 控制台所需的 IAM 权限](#console-permissions)
+ [适用于 Amazon DynamoDB 的 AWS 托管式（预定义）IAM 策略](#access-policy-examples-aws-managed)
+ [客户管理型策略示例](#access-policy-examples-for-sdk-cli)



下面是权限策略的示例。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DescribeQueryScanBooksTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:DescribeTable",
                "dynamodb:Query",
                "dynamodb:Scan"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:111122223333:table/Books"
        }
    ]
}
```

------

 该策略有一条语句用于为针对 `us-west-2` AWS 区域中的某个表（由 `account-id` 指定的 AWS 账户所有）的三项 DynamoDB 操作（`dynamodb:DescribeTable`、`dynamodb:Query` 和 `dynamodb:Scan`)）授予权限。`Resource` 值中的 *Amazon 资源名称（ARN）*指定了要应用权限的表。

## 使用 Amazon DynamoDB 控制台所需的 IAM 权限
<a name="console-permissions"></a>

要使用 DynamoDB 控制台，用户必须拥有一组最低权限来允许他们使用 AWS 账户中的 DynamoDB 资源。除这些 DynamoDB 权限以外，控制台还需要权限：
+ 显示指标和图形的 Amazon CloudWatch 权限。
+ AWS Data Pipeline导出和导入 DynamoDB 数据的 权限。
+  AWS Identity and Access Management访问导出和导入所需角色的 权限。
+ 每当触发 CloudWatch 警报时通知您的 Amazon Simple Notification Service 权限。
+ AWS Lambda处理 DynamoDB Streams 记录的 权限。

如果创建比必需的最低权限更为严格的 IAM 策略，对于附加了该 IAM 策略的用户， 控制台将无法按预期正常运行。为确保这些用户仍可使用 DynamoDB 控制台，也可向用户附加 `AmazonDynamoDBReadOnlyAccess` AWS 托管策略，如 [适用于 Amazon DynamoDB 的 AWS 托管式（预定义）IAM 策略](#access-policy-examples-aws-managed) 中所述。

对于只需要调用 AWS CLI 或 Amazon DynamoDB API 的用户，您无需为其提供最低控制台权限。

**注意**  
 如果涉及 VPC 端点，您还需要授权 DescribeEndpoints API 调用，以通过 IAM 操作 (dynamodb:DescribeEndpoints) 请求 IAM 主体。有关更多信息，请参阅 [端点所需的策略](inter-network-traffic-privacy.md#inter-network-traffic-DescribeEndpoints)。

## 适用于 Amazon DynamoDB 的 AWS 托管式（预定义）IAM 策略
<a name="access-policy-examples-aws-managed"></a>

AWS 通过提供由 AWS 创建和管理的独立 IAM 策略来满足许多常用案例的要求。这些 AWS 托管策略可针对常用案例授予必要的权限，使您不必调查所需权限。有关更多信息，请参阅 *IAM 用户指南*中的 [AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

下面的 AWS 托管式策略可附加到您账户中的用户，这些托管式策略特定于 DynamoDB 并且按使用案例场景进行分组：
+ **AmazonDynamoDBReadOnlyAccess** – 通过 AWS 管理控制台授予对 DynamoDB 资源的只读访问权限。
+ **AmazonDynamoDBFullAccess** – 通过 AWS 管理控制台授予对 DynamoDB 资源的完全访问权限。

您可以通过登录到 IAM 控制台并在该控制台中搜索特定策略来查看这些 AWS 托管权限策略。

**重要**  
最佳实践是创建自定义 IAM 策略，从而向有需要的用户、角色或组授予[最低权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。

## 客户管理型策略示例
<a name="access-policy-examples-for-sdk-cli"></a>

本节的用户策略示例介绍如何授予各 DynamoDB 操作权限的策略示例。当您使用 AWS SDK 或 AWS CLI 时，可以使用这些策略。当您使用控制台时，您需要授予特定于控制台的其他权限。有关更多信息，请参阅 [使用 Amazon DynamoDB 控制台所需的 IAM 权限](#console-permissions)。

**注意**  
以下所有策略示例都使用一个 AWS 区域并包含虚构的账户 ID 和表名。

示例：
+ [用于向表上的所有 DynamoDB 操作授予权限的 IAM 策略](grant-permissions-to-any-action-on-table.md)
+ [用于授予对 DynamoDB 表中项目的只读权限的 IAM 策略](read-only-permissions-on-table-items.md)
+ [用于授予对特定 DynamoDB 表及其索引的访问权限的 IAM 策略](iam-policy-specific-table-indexes.md)
+ [用于对 DynamoDB 表进行读取、写入、更新和删除访问的 IAM 策略](iam-policy-example-data-crud.md)
+ [用于在同一 AWS 账户中隔离 DynamoDB 环境的 IAM 策略](iam-policy-separate-environments.md)
+ [用于防止购买 DynamoDB 预留容量的 IAM 策略](iam-prevent-purchase-reserved-capacity.md)
+ [仅授予 DynamoDB 流的读取访问权限的 IAM 策略（不适用于表）](iam-policy-read-stream-only.md)
+ [允许 AWS Lambda 函数访问 DynamoDB 流记录的 IAM 策略](iam-policy-example-lamda-process-dynamodb-streams.md)
+ [用于对 DynamoDB Accelerator（DAX）集群进行读写访问的 IAM 策略](iam-policy-example-read-write-dax-access.md)

 *IAM 用户指南*，包含[另外三个 DynamoDB 示例](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_examples.html)：
+ [Amazon DynamoDB：允许访问特定的表](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_dynamodb_specific-table.html)
+ [Amazon DynamoDB：允许访问特定的列](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_dynamodb_columns.html)
+ [Amazon DynamoDB：允许基于 Amazon Cognito ID 对 DynamoDB 进行行级别访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_dynamodb_rows.html)

# 用于向表上的所有 DynamoDB 操作授予权限的 IAM 策略
<a name="grant-permissions-to-any-action-on-table"></a>

以下权限策略用于授予允许对 `Books` 表执行*所有* DynamoDB 操作的权限。`Resource` 中指定的资源 ARN 用于标识特定 AWS 区域中的表。如果将 `Resource` ARN 中的表名 `Books` 替换为通配符（\$1），则在账户的*所有*表上允许*所有* DynamoDB 操作。在此策略或任何 IAM 策略上使用通配符之前，请仔细考虑可能带来的安全影响。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllAPIActionsOnBooks",
            "Effect": "Allow",
            "Action": "dynamodb:*",
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books"
        }
    ]
}
```

------

**注意**  
这是使用通配符 (\$1) 允许*全部*操作的示例，包括管理、数据操作、监控和购买 DynamoDB 预留容量。相反，最佳实践是明确指定要授予的每个操作以及仅指定该用户、角色或组需要的操作。

# 用于授予对 DynamoDB 表中项目的只读权限的 IAM 策略
<a name="read-only-permissions-on-table-items"></a>

以下权限策略用于授予 `GetItem`、`BatchGetItem`、`Scan`、`Query` 和 `ConditionCheckItem` 仅 DynamoDB 操作，因此，在 `Books` 表设置只读访问权。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadOnlyAPIActionsOnBooks",
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem",
                "dynamodb:BatchGetItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:ConditionCheckItem"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books"
        }
    ]
}
```

------

# 用于授予对特定 DynamoDB 表及其索引的访问权限的 IAM 策略
<a name="iam-policy-specific-table-indexes"></a>

以下策略授予允许对名为 `Books` 的 DynamoDB 表及所有索引执行数据修改操作的权限。有关索引工作原理的更多信息，请参阅 [在 DynamoDB 中使用二级索引改进数据访问](SecondaryIndexes.md)。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessTableAllIndexesOnBooks",
            "Effect": "Allow",
            "Action": [
              "dynamodb:PutItem",
              "dynamodb:UpdateItem",
              "dynamodb:DeleteItem",
              "dynamodb:BatchWriteItem",
              "dynamodb:GetItem",
              "dynamodb:BatchGetItem",
              "dynamodb:Scan",
              "dynamodb:Query",
              "dynamodb:ConditionCheckItem"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books",
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books/index/*"
            ]
        }
    ]
}
```

------

# 用于对 DynamoDB 表进行读取、写入、更新和删除访问的 IAM 策略
<a name="iam-policy-example-data-crud"></a>

如果您需要允许应用程序创建、读取、更新和删除 Amazon DynamoDB 表、索引和流中的数据，请使用此策略。请根据情况替换 AWS 区域名称、账户 ID 以及表名称或通配符（\$1）。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DynamoDBIndexAndStreamAccess",
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetShardIterator",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:DescribeStream",
                "dynamodb:GetRecords",
                "dynamodb:ListStreams"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books/index/*",
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books/stream/*"
            ]
        },
        {
            "Sid": "DynamoDBTableAccess",
            "Effect": "Allow",
            "Action": [
                "dynamodb:BatchGetItem",
                "dynamodb:BatchWriteItem",
                "dynamodb:ConditionCheckItem",
                "dynamodb:PutItem",
                "dynamodb:DescribeTable",
                "dynamodb:DeleteItem",
                "dynamodb:GetItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:UpdateItem"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books"
        },
        {
            "Sid": "DynamoDBDescribeLimitsAccess",
            "Effect": "Allow",
            "Action": "dynamodb:DescribeLimits",
            "Resource": [
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books",
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books/index/*"
            ]
        }
    ]
}
```

------

要扩展此策略以覆盖此帐户所有 AWS 区域的所有 DynamoDB 表，请使用通配符 (\$1) 作为区域和表名。例如：

```
"Resource":[
                "arn:aws:dynamodb:*:123456789012:table/*",
                "arn:aws:dynamodb:*:123456789012:table/*/index/*"
                ]
```

# 用于在同一 AWS 账户中隔离 DynamoDB 环境的 IAM 策略
<a name="iam-policy-separate-environments"></a>

假设您拥有单独的环境，其中每个环境都持有自己的名为 `ProductCatalog` 的表版本。如果您通过同一个 AWS 账户创建两个 `ProductCatalog` 表，由于权限的设置方式，可能影响其他环境。例如，关于并发控制面板操作（例如 `CreateTable`）数量的配额在 AWS 账户级别进行设置。

因此，一个环境中的每个操作都会减少另一个环境中可执行的操作数量。同时，一个环境中的代码还存在意外访问另一个环境中的表的风险。

**注意**  
如果您希望分离生产和测试工作负载以帮助控制事件的潜在“爆炸半径”，最佳实践是创建单独的 AWS 用于测试和生产工作负载。有关更多信息，请参阅 [AWS 账户管理和分离](https://docs.aws.amazon.com//wellarchitected/latest/security-pillar/aws-account-management-and-separation.html)。

进一步假设您有两个开发人员（Bob 和 Alice），他们在对 `ProductCatalog` 表进行测试。每个开发人员无需单独 AWS 账户，您的开发人员可以共享同一个测试 AWS 账户。在此测试账户中，您可以创建同一个表的副本（如 `Alice_ProductCatalog` 和 `Amit_ProductCatalog`），以便每个开发人员都可以对其执行操作。在这种情况下，您可以在为测试环境创建的 AWS 账户中创建用户 Alice 和 Bob。然后，您可以授予这些用户对其拥有的表执行 DynamoDB 操作的权限。

要向这些 IAM 用户授予权限，您可以执行以下任一操作：
+ 为每个用户创建单独的策略，然后分别将每个策略挂载到相应用户。例如，您可以将以下策略挂载到用户 Alice，允许她对 `Alice_ProductCatalog` 表执行 DynamoDB 操作：

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AllAPIActionsOnAliceTable",
              "Effect": "Allow",
              "Action": [
                "dynamodb:DeleteItem",
                "dynamodb:DescribeContributorInsights",
                "dynamodb:RestoreTableToPointInTime",
                "dynamodb:ListTagsOfResource",
                "dynamodb:CreateTableReplica",
                "dynamodb:UpdateContributorInsights",
                "dynamodb:CreateBackup",
                "dynamodb:DeleteTable",
                "dynamodb:UpdateTableReplicaAutoScaling",
                "dynamodb:UpdateContinuousBackups",
                "dynamodb:TagResource",
                "dynamodb:DescribeTable",
                "dynamodb:GetItem",
                "dynamodb:DescribeContinuousBackups",
                "dynamodb:BatchGetItem",
                "dynamodb:UpdateTimeToLive",
                "dynamodb:BatchWriteItem",
                "dynamodb:ConditionCheckItem",
                "dynamodb:UntagResource",
                "dynamodb:PutItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:UpdateItem",
                "dynamodb:DeleteTableReplica",
                "dynamodb:DescribeTimeToLive",
                "dynamodb:RestoreTableFromBackup",
                "dynamodb:UpdateTable",
                "dynamodb:DescribeTableReplicaAutoScaling",
                "dynamodb:GetShardIterator",
                "dynamodb:DescribeStream",
                "dynamodb:GetRecords",
                "dynamodb:DescribeLimits",
                "dynamodb:ListStreams"
              ],
              "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Alice_ProductCatalog/*"
          }
      ]
  }
  ```

------

  然后，您可以使用其他资源（`Amit_ProductCatalog` 表）为用户 Bob 创建类似的策略。
+ 您可以使用 IAM 策略变量编写一项策略并将其挂载到某个组，而不是为各个用户挂载策略。在此示例中，您需要创建一个组，并且将用户 Alice 和用户 Bob 添加到这个组中。以下示例授予对 `${aws:username}_ProductCatalog` 表执行所有 DynamoDB 操作的权限。评估策略时，策略变量 `${aws:username}` 将替换为请求者的用户名称。例如，如果 Alice 发送一个添加项目的请求，那么只有当 Alice 向 `Alice_ProductCatalog` 表中添加项目时才能执行这一操作。

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "ActionsOnUserSpecificTable",
              "Effect": "Allow",
              "Action": [
                "dynamodb:PutItem",
                "dynamodb:UpdateItem",
                "dynamodb:DeleteItem",
                "dynamodb:BatchWriteItem",
                "dynamodb:GetItem",
                "dynamodb:BatchGetItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:ConditionCheckItem"
              ],
              "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/${aws:username}_ProductCatalog"
          },
          {
              "Sid": "AdditionalPrivileges",
              "Effect": "Allow",
              "Action": [
                  "dynamodb:ListTables",
                  "dynamodb:DescribeTable",
                  "dynamodb:DescribeContributorInsights"
              ],
              "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/*"
          }
      ]
  }
  ```

------

**注意**  
使用 IAM 策略变量时，您必须在策略中明确指定访问 IAM 策略语言的 `2012-10-17` 版本。IAM 策略语言（`2008-10-17`）的默认版本不支持策略变量。

您无需将特定表标识为资源，可以使用通配符 (\$1) 为所有名称以发出请求的用户名称为前缀的表授予权限，如下所示。

```
"Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/${aws:username}_*"
```

# 用于防止购买 DynamoDB 预留容量的 IAM 策略
<a name="iam-prevent-purchase-reserved-capacity"></a>

对于 Amazon DynamoDB 预留容量，您可以支付一次性预付费用并承诺在一段时间内支付最低用量级别的费用，从而节省大量成本。您可以通过 AWS 管理控制台 查看和购买预留容量。不过，您可能不希望您企业中的所有用户都能购买预留容量。有关预留容量的更多信息，请参阅 [Amazon DynamoDB 定价](https://aws.amazon.com/dynamodb/pricing)。

DynamoDB 提供以下 API 操作，以便控制对预留容量管理的访问：
+ `dynamodb:DescribeReservedCapacity` - 返回当前有效的预留容量购买信息。
+ `dynamodb:DescribeReservedCapacityOfferings` - 返回有关 当前提供的预留容量计划的详细信息。AWS
+ `dynamodb:PurchaseReservedCapacityOfferings` - 实际购买预留容量。

AWS 管理控制台 使用这些 API 操作来显示预留容量的相关信息以及进行购买。您无法从应用程序调用这些操作，因为它们只能通过控制台进行访问。但是，您可以在 IAM 权限策略中允许或拒绝对这些操作的访问。

以下策略允许用户通过 AWS 管理控制台查看预留容量服务和当前购买情况，但是新购买请求将会被拒绝。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowReservedCapacityDescriptions",
            "Effect": "Allow",
            "Action": [
                "dynamodb:DescribeReservedCapacity",
                "dynamodb:DescribeReservedCapacityOfferings"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:*"
        },
        {
            "Sid": "DenyReservedCapacityPurchases",
            "Effect": "Deny",
            "Action": "dynamodb:PurchaseReservedCapacityOfferings",
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:*"
        }
    ]
}
```

------

请注意，此策略使用通配符 (\$1) 来允许对所有 、 和 到 拒绝 的 购买所有的 DynamoDB 预留容量。

# 仅授予 DynamoDB 流的读取访问权限的 IAM 策略（不适用于表）
<a name="iam-policy-read-stream-only"></a>

当您对表启用 DynamoDB Streams 时，将捕获有关对表中的数据项目进行的每项修改的信息。有关更多信息，请参阅 [将更改数据捕获用于 DynamoDB Streams](Streams.md)。

在某些情况下，您可能需要阻止应用程序从 DynamoDB 表中读取数据，同时仍允许访问该表的流。例如，您可以配置 AWS Lambda 以在检测到项目更新时轮询流并调用 Lambda 函数，然后再执行其他处理。

您可以通过执行以下操作来控制对 DynamoDB streams 的访问：
+ `dynamodb:DescribeStream`
+ `dynamodb:GetRecords`
+ `dynamodb:GetShardIterator`
+ `dynamodb:ListStreams`

下面的示例策略向用户授予权限以便其访问名为 `GameScores` 的表中的流。ARN 中的通配符 (\$1) 用于匹配与该表关联的所有流。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessGameScoresStreamOnly",
            "Effect": "Allow",
            "Action": [
                "dynamodb:DescribeStream",
                "dynamodb:GetRecords",
                "dynamodb:GetShardIterator",
                "dynamodb:ListStreams"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/stream/*"
        }
    ]
}
```

------

请注意，此策略允许访问 `GameScores` 表流，但不允许访问该表本身。

# 允许 AWS Lambda 函数访问 DynamoDB 流记录的 IAM 策略
<a name="iam-policy-example-lamda-process-dynamodb-streams"></a>

如果您希望基于 DynamoDB 流中的新事件执行特定操作，则可以编写一个由这些事件触发的 AWS Lambda 函数。诸如此类的 Lambda 函数需要拥有从 DynamoDB 流中读取数据的权限。有关将 Lambda 与 DynamoDB Streams 结合使用的更多信息，请参阅[DynamoDB Streams 和 AWS Lambda 触发器](Streams.Lambda.md)。

要向 Lambda 授予权限，请使用与 Lambda 函数的 IAM 角色关联的权限策略（也称为执行角色）。在创建 Lambda 函数时指定此策略。

例如，您可以将以下权限策略与该执行角色相关联，从而向 Lambda 授予执行所列 DynamoDB Streams 操作的权限。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "APIAccessForDynamoDBStreams",
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetRecords",
                "dynamodb:GetShardIterator",
                "dynamodb:DescribeStream",
                "dynamodb:ListStreams"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/stream/*"
        }
    ]
}
```

------

有关授予权限的更多信息，请参阅 *AWS Lambda 开发人员指南*的 [AWS Lambda 权限](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html)。

# 用于对 DynamoDB Accelerator（DAX）集群进行读写访问的 IAM 策略
<a name="iam-policy-example-read-write-dax-access"></a>

以下策略 允许读取、写入、更新和删除访问权限 DynamoDB Accelerator(DAX) 集群，而不是关联的 DynamoDB 表。要使用此策略，请替换 AWS 区域名称、您的账户 ID 以及 DAX 集群的名称。

**注意**  
此策略允许访问 DAX 集群，但不适用于关联 DynamoDB 表。确保您的 DAX 集群具有正确的策略来代表您对 DynamoDB 表执行这些相同的操作。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonDynamoDBDAXDataOperations",
            "Effect": "Allow",
            "Action": [
                "dax:GetItem",
                "dax:PutItem",
                "dax:ConditionCheckItem",
                "dax:BatchGetItem",
                "dax:BatchWriteItem",
                "dax:DeleteItem",
                "dax:Query",
                "dax:UpdateItem",
                "dax:Scan"
            ],
            "Resource": "arn:aws:dax:eu-west-1:123456789012:cache/MyDAXCluster"
        }
    ]
}
```

------

要扩展此策略以覆盖一个账户在所有 AWS 区域的 DAX 访问权限，请使用通配符（\$1）作为区域名称。

```
"Resource": "arn:aws:dax:*:123456789012:cache/MyDAXCluster"
```