

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 授予对 Amazon S3 存储桶的访问权限
<a name="grant-access-s3"></a>

创建文件共享时，文件网关需要具备相关权限，以便将文件上传到 Amazon S3 存储桶，以及对其用于连接存储桶的任何接入点或虚拟私有云（VPC）端点执行操作。要授予此访问权限，您的文件网关将扮演一个 Amazon Identity and Access Management (IAM) 角色，该角色与授予此访问权限的 IAM 策略相关联。

该角色需要此 IAM 策略以及与之有关的安全令牌服务 (STS) 信任关系。此策略确定了该角色可以执行的操作。此外，您的 S3 存储桶和任何关联的接入点或 VPC 端点都必须具有允许 IAM 角色进行访问的访问策略。

您可以自行创建角色和访问策略，也可以让文件网关为您创建。如果文件网关为您创建了策略，则该策略会包含 S3 操作列表。有关角色和权限的信息，请参阅《IAM 用户指南》**中的[创建向 Amazon Web Services 服务委派权限的角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create_for-service.html)。

下面是一个信任策略示例，该策略允许文件网关代入 IAM 角色。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "storagegateway.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

**重要**  
Storage Gateway 可以代入使用 `iam:PassRole` 策略操作传递的现有服务角色，但不支持使用 `iam:PassedToService` 上下文密钥将操作限制到特定服务的 IAM 策略。  
有关更多信息，请参阅《Amazon Identity and Access Management 用户指南》**中的以下主题：  
[IAM：将 IAM 角色传递给特定 Amazon 服务](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_examples_iam-passrole-service.html)
[向用户授予将角色传递给 Amazon 服务的权限](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_use_passrole.html)
[IAM 的可用密钥](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_PassedToService)

如果您不希望文件网关代表您创建策略，您可以创建自己的策略并将其附加到文件共享。有关此操作的详细信息，请参阅 [创建文件共享](GettingStartedCreateFileShare.md)。

借助以下示例策略，文件网关可以执行策略中列出的所有 Amazon S3 操作。语句的第一部分允许对名为 `amzn-s3-demo-bucket` 的 S3 存储桶执行列出的所有操作。第二部分允许对 `amzn-s3-demo-bucket` 中的所有对象执行列出的操作。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:GetAccelerateConfiguration",
                "s3:GetBucketLocation",
                "s3:GetBucketVersioning",
                "s3:ListBucket",
                "s3:ListBucketVersions",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:ListMultipartUploadParts",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Effect": "Allow"
        }
    ]
}
```

------

以下示例策略与上一个策略类似，但该策略让您的文件网关可以执行通过接入点访问存储桶所需的操作。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:ListMultipartUploadParts",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:us-east-1:111122223333:accesspoint/TestAccessPointName/*",
            "Effect": "Allow"
        }
    ]
}
```

------

**注意**  
如果您需要通过 VPC 端点将文件共享连接到 S3 存储桶，请参阅《Amazon PrivateLink 用户指南》**中的 [Amazon S3 的端点策略](https://docs.amazonaws.cn/vpc/latest/privatelink/vpc-endpoints-s3.html#vpc-endpoints-policies-s3)。

**注意**  
对于加密存储桶，文件共享必须使用目标 S3 存储桶账户中的密钥。