

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

# 了解存储在 Amazon S3 中的配置
<a name="appconfig-creating-configuration-and-profile-S3-source"></a>

您可以将配置存储在 Amazon Simple Storage Service (Amazon S3) 存储桶中。在创建配置文件时，将指定存储桶中单个 S3 对象的 URI。您还可以指定授予获取对象 AWS AppConfig 权限的 (IAM) 角色的 Amazon 资源名称 AWS Identity and Access Management (ARN)。在为 Amazon S3 对象创建配置文件之前，请注意以下限制。


****  

| 限制 | Details | 
| --- | --- | 
|  Size  |  存储为 S3 对象的配置的最大大小可以为 1 MB。  | 
|  Object encryption  |  配置文件可以 SSE-S3 和 SSE-KMS 加密对象为目标。  | 
|  存储类  |  AWS AppConfig 支持以下 S3 存储类别：`STANDARD``INTELLIGENT_TIERING`、`REDUCED_REDUNDANCY`、`STANDARD_IA`、和`ONEZONE_IA`。不支持以下类别：所有 S3 Glacier 类别（`GLACIER` 和 `DEEP_ARCHIVE`）。  | 
|  版本控制  |  AWS AppConfig 要求 S3 对象使用版本控制。  | 

## 配置存储为 Amazon S3 对象的配置的权限
<a name="appconfig-creating-configuration-and-profile-S3-source-permissions"></a>

在为存储为 S3 对象的配置创建配置文件时，必须为授予获取对象 AWS AppConfig 权限的 IAM 角色指定 ARN。该角色必须包括以下权限。

对 S3 对象的访问权限
+ s3：GetObject
+ s3：GetObjectVersion

列出 S3 存储桶的权限

s3：ListAllMyBuckets

对用于存储对象的 S3 存储桶的访问权限
+ s3：GetBucketLocation
+ s3：GetBucketVersioning
+ s3：ListBucket
+ s3：ListBucketVersions

完成以下过程以创建允许 AWS AppConfig 获取存储在 S3 对象中的配置的角色。

**创建用于访问 S3 对象的 IAM 策略**  
使用以下过程创建 IAM 策略，该策略 AWS AppConfig 允许获取存储在 S3 对象中的配置。

**创建用于访问 S3 对象的 IAM 策略**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择 **策略**，然后选择 **创建策略**。

1. 在**创建策略**页面上，选择 **JSON** 选项卡。

1. 使用有关 S3 存储桶和配置对象的信息更新以下示例策略。然后将策略粘贴到 **JSON** 选项卡上的文本字段中。将 *placeholder values* 替换为您自己的信息。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:GetObjectVersion"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/my-configurations/my-configuration.json"
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetBucketLocation",
           "s3:GetBucketVersioning",
           "s3:ListBucketVersions",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket"
         ]
       },
       {
         "Effect": "Allow",
         "Action": "s3:ListAllMyBuckets",
         "Resource": "*"
       } 
     ]
   }
   ```

------

1. 选择**查看策略**。

1. 在 **Review policy (查看策略)** 页面上，在 **Name (名称)** 框中键入名称，然后键入描述。

1. 选择**创建策略**。系统将让您返回到 **角色** 页面。

**创建用于访问 S3 对象的 IAM 角色**  
使用以下过程创建一个 IAM 角色，该角色 AWS AppConfig 允许获取存储在 S3 对象中的配置。

**创建一个用于访问 Amazon S3 的 IAM 角色**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

1. 在 **选择受信任实体的类型** 部分中，选择 **AWS 服务**。

1. 在 **Choose a use case (选择使用案例)** 部分中，在 **Common use cases (常见使用案例)** 下，选择 **EC2**，然后选择 **Next: Permissions (下一步: 权限)**。

1. 在 **Attach permissions policy (附加权限策略)** 页面上的搜索框中，输入您在上一过程中创建的策略的名称。

1. 选择该策略，然后选择 **Next: Tags (下一步: 标签)**。

1. 在 **添加标签(可选)** 页面上，输入密钥和可选值，然后选择 **下一步: 审核**。

1. 在 **Review (审核)** 页面上，在 **Role name (角色名称)** 字段中键入名称，然后键入描述。

1. 选择 **Create role (创建角色)**。系统将让您返回到 **角色** 页面。

1. 在**角色**页面中，选择刚刚创建的角色以打开**摘要**页面。记下**角色名称**和**角色 ARN**。在本主题的后面部分中创建配置文件时，您将指定角色 ARN。

**创建信任关系**  
使用以下过程将您刚刚创建的角色配置为信任 AWS AppConfig。

**添加信任关系**

1. 在刚刚创建的角色的**摘要**页面上，选择**信任关系**选项卡，然后选择**编辑信任关系**。

1. 删除 `"ec2.amazonaws.com"` 并添加 `"appconfig.amazonaws.com"`，如以下示例所示。

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

****  

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

------

1. 选择**更新信任策略**。