

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

# 设置 Nimble Studio File Transfer
<a name="setting-up"></a>

首次使用 Nimble Studio File Transfer 之前，请完成以下任务。

**Topics**
+ [注册获取 AWS 账户](#sign-up-for-aws)
+ [创建具有管理访问权限的用户](#create-an-admin)
+ [创建成员账户](#setting-up-member-account)
+ [在 Nimble Studio 中设置工作室](#setting-up-nimble-studio)
+ [创建 S3 存储桶](#setting-up-bucket)
+ [创建 IAM 访问策略。](#setting-up-iam-access-policy)
+ [设置 AWS CLI](#setting-up-cli)

## 注册获取 AWS 账户
<a name="sign-up-for-aws"></a>

如果您没有 AWS 账户，请完成以下步骤来创建一个。

**要注册 AWS 账户**

1. 打开 [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)。

1. 按照屏幕上的说明进行操作。

   在注册时，将接到一通电话，要求使用电话键盘输入一个验证码。

   当您注册时 AWS 账户，就会创建*AWS 账户根用户*一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为安全最佳实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.aws.amazon.com/accounts/latest/reference/root-user-tasks.html)。

AWS 注册过程完成后会向您发送一封确认电子邮件。在任何时候，您都可以通过转至 [https://aws.amazon.com/](https://aws.amazon.com/) 并选择**我的账户**来查看当前的账户活动并管理您的账户。

## 创建具有管理访问权限的用户
<a name="create-an-admin"></a>

注册后，请保护您的安全 AWS 账户 AWS 账户根用户 AWS IAM Identity Center，启用并创建管理用户，这样您就不会使用 root 用户执行日常任务。

**保护你的 AWS 账户根用户**

1.  选择 **Root 用户**并输入您的 AWS 账户 电子邮件地址，以账户所有者的身份登录。[AWS 管理控制台](https://console.aws.amazon.com/)在下一页上，输入您的密码。

   要获取使用根用户登录方面的帮助，请参阅*《AWS 登录 用户指南》*中的[以根用户身份登录](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 为您的根用户启用多重身份验证 (MFA)。

   有关说明，请参阅 I [A *M* 用户指南中的为 AWS 账户 根用户启用虚拟 MFA 设备（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

**创建具有管理访问权限的用户**

1. 启用 IAM Identity Center

   有关说明，请参阅**《AWS IAM Identity Center 用户指南》中的[启用 AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html)。

1. 在 IAM Identity Center 中，为用户授予管理访问权限。

   有关使用 IAM Identity Center 目录 作为身份源的教程，请参阅《[用户*指南》 IAM Identity Center 目录中的使用默认设置配置AWS IAM Identity Center 用户*访问权限](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html)。

**以具有管理访问权限的用户身份登录**
+ 要使用您的 IAM Identity Center 用户身份登录，请使用您在创建 IAM Identity Center 用户时发送到您的电子邮件地址的登录网址。

  有关使用 IAM Identity Center 用户[登录的帮助，请参阅*AWS 登录 用户指南*中的登录 AWS 访问门户](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)。

**将访问权限分配给其他用户**

1. 在 IAM Identity Center 中，创建一个权限集，该权限集遵循应用最低权限的最佳做法。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的[创建权限集](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-create-a-permission-set.html)。

1. 将用户分配到一个组，然后为该组分配单点登录访问权限。

   有关说明，请参阅《*AWS IAM Identity Center 用户指南*》中的[添加组](https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html)。

## 创建成员账户
<a name="setting-up-member-account"></a>

**注意**  
如果在管理账户中设置 Nimble Studio，请跳过此步骤。

如果您是拥有 AWS 成员帐户的 IT 管理员，并且正在尝试设置 Nimble Studio，则您的管理用户必须首先向该成员帐户授予正确的访问权限和权限。

你可以在管理账户或成员账户中设置 Nimble Studio，前提是该账户位于来自 AWS Organizations的组织中。一个组织只有一个*管理账户*。组织的核心功能由管理账户进行配置和执行。*成员账户*设置和使用不同的服务。有关管理账户和成员账户等的更多信息，请参阅[AWS Organizations 术语和概念](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html)。

此外， AWS IAM Identity Center 必须在组织中启用。IAM 身份中心只能在管理账户中启用，并且工作室必须与 IAM AWS 区域 身份中心位于同一位置。要在您的组织中启用 IAM Identity Center，请按照[启用 IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-enable-identity-center.html) 中的说明进行操作。

**注意**  
如果您尝试在未启用 IAM Identity Center 的成员账户中设置工作室，则该成员账户将无法自己启用 IAM Identity Center。在这种情况下，成员账户必须要求其企业 IT 人员在其 AWS 组织中配置 IAM Identity Center。

**创建具有创建工作室的权限的成员账户**

1. 使用现有成员账户或按照用户指南中[添加 AWS IAM Identity Center 用户](https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html)中的说明创建新账户。

   1. 此成员账户必须属于在 Nimble Studio 中建立工作室的组织。

1. 按照[注册成员账户](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html#delegated-admin-how-to-register)中的说明为成员账户委派管理员访问权限。

   1. 委派的管理员访问权限是 IAM Identity Center 的一项功能。委派的管理员访问权限与 IAM 管理员访问权限无关。某人可以拥有访问其账户的完全管理员权限，但没有管理账户的委托管理员访问权限。

现在，您的 IT 管理员可以在下一节中完成以下步骤。

## 在 Nimble Studio 中设置工作室
<a name="setting-up-nimble-studio"></a>

如果您已经拥有 Nimble Studio 云工作室，请跳过此步骤。

**注意**  
File Transfer 不需要您的 Amazon S3 存储桶与 Nimble Studio 关联。File Transfer 只需要一个 Nimble Studio，因为该工具仅供 Nimble Studio 客户使用，无需支付额外费用。

要创建工作室，请按照[设置 Nimble Studio](https://docs.aws.amazon.com/nimble-studio/latest/userguide/nimble-studio-setup.html) 中的说明进行操作。在设置工作室时，请确保以下信息是真实的。
+ 使用管理账户或具有 IAM Identity Center 委托管理员访问权限的成员账户设置 Nimble Studio。
+ 在*[步骤 1：配置 Studio 基础设施的第](https://docs.aws.amazon.com/nimble-studio/latest/userguide/nimble-studio-setup.html#studio-infrastructure) 5* 步中，选择您在中启用了 IAM Identity Center 的。 AWS 区域 

## 创建 S3 存储桶
<a name="setting-up-bucket"></a>

必须先完成[设置 Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/setting-up-s3.html) 教程，然后才能使用 File Transfer。如果 Amazon S3 配置不正确，存储桶中内容的安全性可能会受到损害。

还必须完成[创建第一个 S3 存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html)教程。这会创建一个 S3 存储桶，以便从中上传和下载文件。
+ （推荐）在*步骤 8* 中，**启用存储桶版本控制**。
  + 这样，如果您不小心用新版本覆盖了 Amazon S3 中的文件，数据也不会丢失。
  + 启用存储桶版本控制会产生额外费用。有关 Amazon S3 定价的更多信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)页面。
+ （推荐）在*步骤 11* 中，对于**加密密钥类型**，选择 **AWS Key Management Service 密钥 (SSE-KMS)**。
  + 如果您没有 SSE-KMS 密钥，请按照创建[对称加密 KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)教程中的说明创建密钥。
  + 有关不同密钥类型的更多信息，请参阅《 AWS Key Management Service 开发人员指南》中的[客户 AWS 密钥和密钥页面](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt)。要允许他人使用其他人的存储桶 AWS 账户，您必须使用客户托管密钥。创建存储桶后很难更改密钥，因此请确保使用正确的密钥创建存储桶。
+ 将所有其他设置和用户首选项保留为默认值。

## 创建 IAM 访问策略。
<a name="setting-up-iam-access-policy"></a>

接下来，必须创建 IAM 访问策略，以授予您在[创建 S3 存储桶](#setting-up-bucket)部分中创建的 Amazon S3 存储桶的权限。之后，将 IAM policy附加到 IAM 用户。此 IAM 用户将生成 File Transfer 访问 Amazon S3 存储桶所需的凭证。

按照《*IAM 用户指南*》中的[在 JSON 选项卡上创建策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor)教程进行操作，并使用以下 JSON 策略文档。您需要使用的策略取决于您选择 AWS KMS key 的策略类型。

------
#### [ Using an AWS KMS key (SSE-KMS) ]
+ 在 JSON 模板中输入以下文本，为 Amazon S3 上传和下载提供所需的访问权限。
+ 要允许删除 S3 存储桶中的对象，请包括语句中列出的操作，并附上以下文本中的 Sid “OptionalActions”。如果您不想允许删除 S3 对象，则无需包含这些操作。

  ```
  {
      "Statement": [
          {
              "Sid": "ListBucketContents",
              "Action": [
                  "s3:ListBucket",
                  "s3:GetBucketLocation",
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:GetObjectTagging"
              ],
              "Effect": "Allow",
              "Resource": [
                  "arn:aws:s3:::bucket-name",
                  "arn:aws:s3:::bucket-name/*"
              ],
          },
          {
              "Sid": "KMSKeyAccess",
              "Action": [
                  "kms:GenerateDataKey*",
                  "kms:Encrypt",
                  "kms:Decrypt"
              ],
              "Effect": "Allow",
              "Resource": "arn:aws:kms:key-region:account-number:key/key-id"
          },
          {
              "Sid": "OptionalActions",
              "Action": [
                  "s3:DeleteObject",
                  "s3:DeleteObjectVersion",
                  "s3:ListBucketVersions",
                  "s3:AbortMultipartUpload"
              ],
              "Effect": "Allow",
              "Resource": [
                  "arn:aws:s3:::bucket-name",
                  "arn:aws:s3:::bucket-name/*"
              ],
          }
      ],
      "Version": "2012-10-17"
  }
  ```
+ 将 *bucket-name* 替换为您在 [创建 S3 存储桶](#setting-up-bucket) 中创建的存储桶的名称。
+ 将*密钥区域*替换为 AWS 区域 您在其中创建密钥的区域。
+ 将 *account-number* 替换为您自己的 AWS 账户 账号。
+ 使用您在 [创建 S3 存储桶](#setting-up-bucket) 的*步骤 2* 中选择的 KMS 密钥的 ID 替换 *key-id*。
  + 要查找 KMS 密钥 ID，请按照[查看 S3 存储桶密钥设置](https://docs.aws.amazon.com/AmazonS3/latest/userguide/viewing-bucket-key-settings.html)教程中的**查看存储桶的 S3 存储桶密钥设置**中的说明进行操作。
  + 选择您在 [创建 S3 存储桶](#setting-up-bucket) 中创建的存储桶。
  + 在**默认加密**部分中找到 **AWS KMS key ARN**。KMS 密钥 ID 是 ARN 的最后一部分。

------
#### [ Using an Amazon Managed KMS key (SSE-S3) ]
+ 检查您的存储桶中是否包含有效的 KMS 密钥。
  + 按照[查看 S3 存储桶密钥设置](https://docs.aws.amazon.com/AmazonS3/latest/userguide/viewing-bucket-key-settings.html)教程中的**查看存储桶的 S3 存储桶密钥设置**中的说明进行操作。
  + 如果您未使用 KMS 密钥，则可以继续执行*步骤 2*。
  + 如果您确实在存储桶上附加了 KMS 密钥，请按照**使用 AWS KMS key (SSE-KMS**) 中的说明进行操作。
+ 在 JSON 模板中输入以下文本，为 Amazon S3 上传和下载提供所需的访问权限。
+ 要允许删除 S3 存储桶中的对象，请包括语句中列出的操作，并附上以下文本中的 Sid “OptionalActions”。如果您不想允许删除 S3 对象，则无需包含这些操作。

  ```
  {
      "Statement": [
          {
              "Sid": "ListBucketContents",
              "Action": [
                  "s3:ListBucket",
                  "s3:GetBucketLocation",
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:GetObjectTagging"
              ],
              "Effect": "Allow",
              "Resource": [
                  "arn:aws:s3:::bucket-name",
                  "arn:aws:s3:::bucket-name/*"
              ],
          },
          {
              "Sid": "OptionalActions",
              "Action": [
                  "s3:DeleteObject",
                  "s3:DeleteObjectVersion",
                  "s3:ListBucketVersions",
                  "s3:AbortMultipartUpload"
              ],
              "Effect": "Allow",
              "Resource": [
                  "arn:aws:s3:::bucket-name",
                  "arn:aws:s3:::bucket-name/*"
              ],
          }
      ],
      "Version": "2012-10-17"
  }
  ```
  + 将 *bucket-name* 替换为您在 [创建 S3 存储桶](#setting-up-bucket) 中创建的存储桶的名称。

------

现在，您已经创建一个 IAM policy，该策略向您在 [创建 S3 存储桶](#setting-up-bucket) 中创建的 S3 存储桶授予权限。

## 设置 AWS CLI
<a name="setting-up-cli"></a>

 AWS CLI 如果尚未安装和配置，请安装和配置。 File Transfer仅使用 AWS Command Line Interface (AWS CLI) 命名的配置文件来处理和存储 IAM 证书。有关更多信息，请参阅 [AWS CLI入门](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)。

1. 要在本地计算机 AWS CLI 上安装或升级，请按照《*AWS Command Line Interface 用户指南》*中[安装 AWS Command Line Interface 版本 2](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 中的说明进行操作。

1. 按照 AWS CLI [设置新配置和凭据中的说明进行配置](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html#getting-started-quickstart-new)。

1. 通过运行 `aws nimble help` 来验证安装或升级。该命令显示可用的 Nimble Studio 命令列表。

1. 按照[使用命名配置文件](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-using-profiles.html)中的说明创建命名配置文件。此命名的配置文件将用于在[开始使用 Nimble Studio File Transfer](getting-started.md)部分中配置 File Transfer。

   1. 要创建访问密钥和私有密钥，请按照[在您的 AWS 账户中创建 IAM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console)中的说明操作。创建用户后，控制台会生成访问密钥和私有密钥值。

   1. 在*步骤 4* 中，为该用户将拥有的访问类型选择**命令行界面 (CLI)**。

   1. 在*步骤 6* 中，选择**直接附加现有策略**。选中您在 [创建 IAM 访问策略。](#setting-up-iam-access-policy) 中制定的策略对应的复选框。

1. 通过运行以下命令验证您是否创建了命名的配置文件：`aws --profile [name of profile you created in step 4] sts get-caller-identity`

   1. 该命令生成的输出结果应与下面的输出示例类似。在本示例中，配置文件被命名为 `filetransfer`。

   ```
   $ aws --profile filetransfer sts get-caller-identity
       "UserId": "ARXXXXXXXXXXXXXXXXXXX:username",
       "Account": "123456789012",
       "Arn": "arn:aws:sts::123456789012:XXXXXXXXXXXXXXX..."
   }
   ```

我们建议您阅读[AWS Command Line Interface 用户指南](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)中提供的其他 AWS CLI 安全控制措施。