

AWS Snowball Edge不再向新客户提供。新客户应探索[AWS DataSync](https://aws.amazon.com/datasync/)在线传输、用于安全物理[传输AWS的数据传输终端](https://aws.amazon.com/data-transfer-terminal/)或AWS合作伙伴解决方案。对于边缘计算，请浏览 [AWS Out](https://aws.amazon.com/outposts/) posts。

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

# Snowball Edge 控制台和创建作业的访问控制
<a name="authentication-and-access-control"></a>

与所有AWS服务一样，访问AWS Snowball Edge需要AWS可用于对您的请求进行身份验证的证书。这些证书必须具有访问AWS资源（例如 Amazon S3 存储桶或AWS Lambda函数）的权限。AWS Snowball Edge有两个不同之处：

1. 中的任务AWS Snowball Edge没有 Amazon 资源名称 (ARN)。

1. 由您负责对本地设备进行物理和网络访问控制。

[适用于 Identity and Access Managem AWS Snowball Edge](security-iam.md)如需详细了解如何使用[AWS身份和访问管理 (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/)，AWS Snowball Edge以及如何通过控制谁可以访问资源来帮助保护您的资源，请参见本地访问控制建议，以及本地访问控制建议。AWS Cloud

## 管理资源访问权限概述，请参阅AWS Cloud
<a name="access-control-overview"></a>

每个AWS资源都归人所有AWS 账户，创建或访问资源的权限受权限策略的约束。账户管理员可以向 IAM 身份（即用户、群组和角色）附加权限策略，某些服务（例如AWS Lambda）还支持向资源附加权限策略。

**注意**  
*账户管理员*（或管理员用户）是具有管理员权限的用户。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 最佳实操](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

**Topics**
+ [资源和操作](#access-control-resources)
+ [了解资源所有权](#access-control-owner)
+ [管理对资源的访问权限AWS Cloud](#access-control-manage-access-intro)
+ [指定策略元素：操作、效果和主体](#access-control-specify-actions)
+ [在策略中指定条件](#specifying-conditions)

### 资源和操作
<a name="access-control-resources"></a>

在中AWS Snowball Edge，主要资源是*工作*。AWS Snowball Edge还有 Snowball 和AWS Snowball Edge设备之类的设备，但是，您只能在现有任务中使用这些设备。Amazon S3 S3 存储桶和 Lambda 函数分别是 Amazon S3 和 Lambda 的资源。

如前所述，作业没有与其关联的 Amazon 资源名称（ARN）。但是，其他服务的资源（如 Amazon S3 存储桶）的确具有关联的唯一 Amazon 资源名称（ARN），如下表所示。


| 资源类型 | ARN 格式 | 
| --- | --- | 
| S3 存储桶 | arn:aws:s3:{{region}}:{{account-id}}:{{BucketName}}/{{ObjectName}} | 

AWS Snowball Edge提供了一组用于创建和管理作业的操作。有关可用操作的列表，请参阅 [AWS Snowball Edge API 参考](https://docs.aws.amazon.com/snowball/latest/api-reference/api-reference.html)。

### 了解资源所有权
<a name="access-control-owner"></a>

AWS 账户拥有在账户中创建的资源，无论谁创建了这些资源。具体而言，资源所有者是AWS 账户对资源创建请求进行身份验证的[委托人实体](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)（即根账户、IAM 用户或 IAM 角色）。以下示例说明了它的工作原理：
+ 如果您使用您的AWS 账户根账户证书创建 S3 存储桶，则您AWS 账户就是该资源的所有者（在中AWS Snowball Edge，资源就是任务）。
+ 如果您在中创建了一个 IAM 用户AWS 账户并授予创建任务以向该用户订购 Snowball Edge 设备的权限，则该用户可以创建订购 Snowball Edge 设备的任务。但是，用户所属的您AWS 账户拥有作业资源。
+ 如果您在中创建AWS 账户具有创建任务权限的 IAM 角色，则任何能够担任该角色的人都可以创建任务来订购 Snowball Edge 设备。角色AWS 账户所属的您拥有作业资源。

### 管理对资源的访问权限AWS Cloud
<a name="access-control-manage-access-intro"></a>

*权限策略*规定谁可以访问哪些内容。下一节介绍创建权限策略时的可用选项。

**注意**  
本节讨论在的上下文中使用 IAM AWS Snowball Edge。这里不提供有关 IAM 服务的详细信息。有关完整的 IAM 文档，请参阅《IAM 用户指南》中的[什么是 IAM？](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)。有关 IAM 策略语法和说明的信息，请参阅《IAM 用户指南》中的 [AWS IAM 策略参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)。

*附加到 IAM 身份的策略称为*基于身份*的策略（IAM 策略），附加到资源的策略称为基于资源的策略。*AWS Snowball Edge仅支持基于身份的策略（IAM 策略）。

**Topics**
+ [Resource-Based 政策](#access-control-manage-access-intro-resource-policies)

#### Resource-Based 政策
<a name="access-control-manage-access-intro-resource-policies"></a>

其他服务（如 Amazon S3）还支持基于资源的权限策略。例如，您可以将策略附加到 S3 存储桶，以管理对该存储桶的访问权限。AWS Snowball Edge不支持基于资源的策略。 

### 指定策略元素：操作、效果和主体
<a name="access-control-specify-actions"></a>

对于各个作业（参阅[资源和操作](#access-control-resources)），该服务均将定义一组 API 操作（参阅 [AWS Snowball Edge API 参考](https://docs.aws.amazon.com/snowball/latest/api-reference/api-reference.html)）来创建和管理上述作业。要授予这些 API 操作的权限，请AWS Snowball Edge定义一组可在策略中指定的操作。例如，将为某个作业定义以下操作：`CreateJob`、`CancelJob` 和 `DescribeJob`。请注意，执行某项 API 操作可能需要执行多个操作的权限。

以下是最基本的策略元素：
+ **资源**：在策略中，您可以使用 Amazon Resource Name（ARN）标识策略应用到的资源。有关更多信息，请参阅 [资源和操作](#access-control-resources)。
**注意**  
亚马逊 S3、亚马逊 EC2、AWS Lambda 和许多其他服务AWS KMS都支持此功能。  
 Snowball 不支持在 IAM 策略语句的 `Resource` 元素中指定资源 ARN。要允许对Snowball 的访问权限，请在策略中指定 `“Resource”: “*”`。
+ **操作**：您可以使用操作关键字标识要允许或拒绝的资源操作。例如，根据指定的 `Effect`，`snowball:*` 可以允许执行所有操作的用户权限，也可以拒绝这些用户权限。
**注意**  
支持 Amazon EC2、Amazon S3 和 IAM。
+ **效果**：您可以指定当用户请求特定操作（可以是允许或拒绝）时的效果。如果没有显式授予（允许）对资源的访问权限，则隐式拒绝访问。您也可显式拒绝对资源的访问，这样可确保用户无法访问该资源，即使有其他策略授予了访问权限的情况下也是如此。
**注意**  
支持 Amazon EC2、Amazon S3 和 IAM。
+ **主体**：在基于身份的策略（IAM policy）中，附加了策略的用户是隐式主体。对于基于资源的策略，您可以指定要获得权限的用户、账户、服务或其他实体（仅适用于基于资源的策略）。AWS Snowball Edge不支持基于资源的策略。

有关 IAM 策略语法和描述的更多信息，请参阅《IAM 用户指南》**中的 [AWS IAM 策略参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)。

有关显示所有AWS Snowball Edge API 操作的表格，请参阅[AWS Snowball Edge API 权限：操作、资源和条件参考](access-policy-examples-for-sdk-cli.md#snowball-api-permissions-ref)。

### 在策略中指定条件
<a name="specifying-conditions"></a>

当您授予权限时，可使用 IAM 策略语言来指定规定策略何时生效的条件。例如，您可能希望策略仅在特定日期后应用。有关使用策略语言指定条件的更多信息，请参阅《IAM 用户指南》**中的[条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition)。

要表示条件，您可以使用预定义的条件键。没有特定于AWS Snowball Edge的条件键。但是，您可以根据需要使用AWS范围内的条件键。有关AWS范围密钥的完整列表，请参阅 *IAM 用户指南*中的[条件可用密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。

## AWS-托管（预定义）策略AWS Snowball Edge
<a name="access-policy-examples-aws-managed"></a>

AWS通过提供由创建和管理的独立 IAM 策略来解决许多常见用例AWS。托管策略可针对常见使用案例授予必要权限，因此，您无需自行调查具体需要哪些权限。有关更多信息，请参阅《IAM 用户指南》**中的 [AWS托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

您可以将以下AWS托管策略与一起AWS Snowball Edge使用。

### 为 Snowball Edge Edge 创建 IAM 角色策略
<a name="create-iam-role"></a>

创建的 IAM 角色策略必须拥有对 Amazon S3 存储桶的读写权限。IAM 角色还必须与 Snowball Edge 建立信任关系。建立信任关系意味着AWS可以将数据写入 Snowball 和 Amazon S3 存储桶，具体取决于您是导入还是导出数据。

当您在中创建订购 Snowball Edge 设备的任务时AWS Snow 系列管理控制台，将在第 4 步的 “**权限**” 部分创建必要的 IAM 角色。此过程是自动的。您允许 Snowball Edge 担任的 IAM 角色仅用于在包含已传输数据的 Snowball 到达时将您的数据写入存储桶。AWS此流程包括下列步骤。

**为导入作业创建 IAM 角色**

1. 登录AWS Management Console并打开AWS Snowball Edge控制台，网址为[https://console.aws.amazon.com/importexport/](https://console.aws.amazon.com/importexport/)。

1. 请选择**创建作业**。

1. 在第一步中，在 Amazon S3 中填写导入作业的详细信息，然后选择**下一步**。

1. 在第二步中，在 “**权限**” 下，选择 **Create/Select IAM 角色**。

   IAM 管理控制台将打开，其中显示AWS用于将对象复制到您指定的 Amazon S3 存储桶的 IAM 角色。

1. 检查此页上的详细信息，然后选择**允许**。

   您将返回到AWS Snow 系列管理控制台，其中**选定的 IAM 角色 ARN** 包含您刚刚创建的 IAM 角色的亚马逊资源名称 (ARN)。

1. 选择**下一步**完成创建您的 IAM 角色。

上述过程创建了一个对您计划将数据导入到的 Amazon S3 存储桶拥有写权限的 IAM 角色。创建的 IAM 角色具有以下结构之一，具体取决于它是用于导入作业还是用于导出作业。

**用于导入作业的 IAM 角色**

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

****  

```
          {
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketLocation",
        "s3:ListBucketMultipartUploads"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketPolicy",
        "s3:PutObject",
        "s3:AbortMultipartUpload",
        "s3:ListMultipartUploadParts",
        "s3:PutObjectAcl",
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::*"
    }
  ]
}
```

------

如果您使用服务器端加密和AWS KMS托管密钥 (SSE-KMS) 来加密与导入任务关联的 Amazon S3 存储桶，则还需要在您的 IAM 角色中添加以下语句。

```
{
     "Effect": "Allow",
     "Action": [
       "kms:GenerateDataKey"
     ],
     "Resource": "arn:aws:kms:us-west-2:{{123456789012:key/abc123a1-abcd-1234-efgh-111111111111}}"
}
```

如果对象大小较大，则用于执行导入过程的 Amazon S3 客户端会使用分段上传。如果您使用启动分段上传 SSE-KMS，则所有上传的段都将使用指定的AWS KMS密钥进行加密。由于上传的各部分内容已加密，因此必须先对其进行解密，然后才能组合起来完成分段上传。因此，当您使用进行分段上传到 Amazon S3 时，您必须拥有解密密AWS KMS钥 (`kms:Decrypt`) 的权限。 SSE-KMS

以下是需要 `kms:Decrypt` 权限的导入作业所需的 IAM 角色示例。

```
{
    "Effect": "Allow",
     "Action": [
       "kms:GenerateDataKey","kms:Decrypt"

     ],
     "Resource": "arn:aws:kms:us-west-2:123456789012:key/abc123a1-abcd-1234-efgh-111111111111"
}
```

 以下是导出作业所需的 IAM 角色示例。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketLocation",
        "s3:GetBucketPolicy",
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::*"
    }
  ]
}
```

------

如果您使用带有AWS KMS托管密钥的服务器端加密来加密与导出任务关联的 Amazon S3 存储桶，则还需要在您的 IAM 角色中添加以下语句。

```
{
     "Effect": "Allow",
     "Action": [
            “kms:Decrypt”
      ],
     "Resource": "arn:aws:kms:us-west-2:{{123456789012:key/abc123a1-abcd-1234-efgh-111111111111}}"
}
```

您可以创建自己的自定义 IAM 策略，以授予AWS Snowball Edge任务管理的 API 操作权限。您可以将这些自定义策略附加到需要这些权限的 IAM 用户或组。