

# 使用 IAM 对区域端点 API 操作进行授权
<a name="s3-express-security-iam"></a>

Amazon Identity and Access Management（IAM）是一项 Amazon Web Services 服务，有助于管理员安全地控制对 Amazon 资源的访问。IAM 管理员可控制哪些用户能够通过身份验证（登录）和获得授权（拥有权限），可以使用目录存储桶中的 Amazon S3 资源和执行 S3 Express One Zone 操作。使用 IAM 不会产生额外的费用。

默认情况下，用户没有目录存储桶的权限。要授予对目录存储桶的访问权限，您可以使用 IAM 创建用户、组或角色，然后将权限附加到这些身份。有关 IAM 的更多信息，请参阅《IAM 用户指南》**中的[安全最佳实践](https://docs.amazonaws.cn/IAM/latest/UserGuide/best-practices.html)。

要提供访问权限，您可以通过以下方法为用户、组或角色添加权限：
+ **Amazon IAM Identity Center 中的用户和组** – 创建权限集。按照《Amazon IAM Identity Center 用户指南》**中[创建权限集](https://docs.amazonaws.cn/singlesignon/latest/userguide/get-started-create-a-permission-set.html)的说明进行操作。
+ **通过身份提供商在 IAM 中管理的用户** – 创建身份联合验证角色。按照《IAM 用户指南**》中[为第三方身份提供商创建角色（联合身份验证）](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create_for-idp.html)的说明进行操作。
+ **IAM 角色和用户** – 创建您的用户可以代入的角色。请按照《IAM 用户指南》**的[创建向 IAM 用户委派权限的角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create_for-user.html)中的说明进行操作。

有关为 S3 Express One Zone 设置 IAM 的更多信息，请参阅以下主题。

**Topics**
+ [主体](#s3-express-security-iam-principals)
+ [资源](#s3-express-security-iam-resources)
+ [目录存储桶的操作](#s3-express-security-iam-actions)
+ [目录存储桶的 IAM 基于身份的策略](s3-express-security-iam-identity-policies.md)
+ [目录存储桶的存储桶策略示例](s3-express-security-iam-example-bucket-policies.md)
+ [适用于 Amazon S3 Express One Zone 存储类的 Amazon 托管式策略](s3-express-one-zone-security-iam-awsmanpol.md)

## 主体
<a name="s3-express-security-iam-principals"></a>

创建基于资源的策略以授予对存储桶的访问权限时，您必须使用 `Principal` 元素来指定可请求对该资源执行某个操作或运算的人员或应用程序。对于目录存储桶策略，您可以使用以下主体：
+ Amazon 账户
+ IAM 用户
+ IAM 角色
+ 联合用户

有关更多信息，请参阅《IAM 用户指南》**中的 [https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_elements_principal.html](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_elements_principal.html)。

## 资源
<a name="s3-express-security-iam-resources"></a>

目录存储桶的 Amazon 资源名称（ARN）包含 `s3express` 命名空间、Amazon Web Services 区域、Amazon 账户 ID 和目录存储桶名称，其中包括 Amazon 可用区 ID（可用区或本地区域 ID）。

要访问目录存储桶并对其执行操作，您必须使用以下 ARN 格式：

```
arn:aws:s3express:{{region}}:{{account-id}}:bucket/{{base-bucket-name}}--{{zone-id}}--x-s3
```

要访问目录存储桶的接入点并对其执行操作，必须使用以下 ARN 格式：

```
arn:aws::s3express:{{region}}:{{account-id}}:accesspoint/{{accesspoint-basename}}--{{zone-id}}--xa-s3
```

有关更多信息，请参阅《IAM 用户指南》**中的 [https://docs.amazonaws.cn/IAM/latest/UserGuide/reference-arns.html](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference-arns.html)。有关资源的更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素：Resource](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_elements_resource.html)。

## 目录存储桶的操作
<a name="s3-express-security-iam-actions"></a>

在基于 IAM 身份的策略或基于资源的策略中，您可以定义要允许或拒绝的 S3 操作。这些操作对应于特定的 API 操作。使用目录存储桶，您必须使用 S3 Express One Zone 命名空间来授予权限，称为 `s3express`。

当您支持 `s3express:CreateSession` 权限时，`CreateSession` API 操作将为所有可用区端点 API（对象级）操作检索临时会话令牌。这些会话令牌返回用于所有其它可用区端点 API 操作的凭证。因此，您不需要使用 IAM 策略授予对可用区 API 操作的访问权限。相反，`CreateSession` 启用对所有对象级操作的访问权限。有关可用区 API 操作和权限的列表，请参阅[对请求进行身份验证和授权](https://docs.amazonaws.cn/AmazonS3/latest/userguide/s3-express-authenticating-authorizing.html)。

要了解有关 `CreateSession` API 操作的更多信息，请参阅《Amazon Simple Storage Service API 参考》**中的 [https://docs.amazonaws.cn/AmazonS3/latest/API/API_CreateSession.html](https://docs.amazonaws.cn/AmazonS3/latest/API/API_CreateSession.html)。

您可以在 IAM 策略语句的 `Action` 元素中指定以下操作。可以使用策略授予在 Amazon 中执行操作的权限。当您在策略中使用一项操作时，通常会允许或拒绝使用具有相同名称的 API 操作。但在某些情况下，单个操作可控制对多个 API 操作的访问。对存储桶级操作的访问权限，只能在基于 IAM 身份的策略（用户或角色）中授予，不能在存储桶策略中授予。

有关如何配置接入点策略的更多信息，请参阅[配置 IAM 策略以使用目录存储桶的接入点](access-points-directory-buckets-policies.md)。

有关更多信息，请参阅 [Actions, resources, and condition keys for Amazon S3 Express](https://docs.amazonaws.cn/service-authorization/latest/reference/list_amazons3express.html)。