AWS Snowball
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS Snowball 中的授权和访问控制

您必须拥有有效的证书才能创建 Snowball 任务。您使用这些证书来验证您的访问。拥有有效证书的请求者还必须拥有来自资源拥有者的权限才能从资源拥有者那里访问资源。例如,您可以使用 AWS Identity and Access Management (IAM) 服务在您的账户中创建用户。IAM 用户具有发出请求的有效凭证,但默认情况下,这些用户无权访问任何资源。接下来,您可以找到有关如何对请求进行身份验证和管理 Snowball 资源访问权限的信息。

注意

以下内容包含特定于 AWS Snowball 管理控制台和 Snowball 客户端的信息。如果您计划以编程方式创建任务和传输数据,请参阅 AWS Snowball API 参考

身份验证

每个 Snowball 作业都必须经过身份验证。为此,您可以在您的账户中创建和管理 IAM 用户。使用 IAM,您可以在 AWS 中创建和管理用户和权限。

Snowball 用户必须拥有某些 IAM 相关的权限才能访问 AWS Snowball 管理控制台来创建任务。创建导入或导出任务的 IAM 用户还必须有权访问正确的 Amazon Simple Storage Service (Amazon S3) 资源,例如,要用于任务的 Amazon S3 存储桶。

要使用 AWS Snowball 管理控制台,IAM 用户必须符合以下条件:

    • 列出您的所有 Amazon S3 存储桶并在需要时创建新存储桶。

    • 创建 Amazon Simple Notification Service (Amazon SNS) 主题。

    • 选择 AWS Key Management Service (AWS KMS) 密钥。

    • 创建 IAM 角色 Amazon 资源名称 (ARN)。

    有关为用户授予访问 Amazon S3 存储桶的权限的更多信息,请参阅为 Snowball 创建 IAM 用户

  • 创建的 IAM 角色必须拥有对 Amazon S3 存储桶的写入权限。该角色还必须拥有与 Snowball 的信任关系,以便 AWS 可以将 Snowball 中的数据写入到您指定的 Amazon S3 存储桶。各任务的任务创建向导会自动执行此步骤;您也可以手动执行此步骤。有关更多信息,请参阅为 Snowball 创建 IAM 角色

为 Snowball 创建 IAM 用户

如果在 Snowball 控制台中执行操作的账户不是根账户或管理员,则您必须使用 IAM 管理控制台授予该用户创建和管理任务所需的权限。以下过程说明如何创建新的 IAM 用户来实现此目的并通过内联策略授予该用户所需的权限。

如果您要更新现有的 IAM 用户,请从步骤 6 开始。

为 Snowball 创建新的 IAM 用户

  1. 登录到 AWS 管理控制台,然后通过以下网址打开 IAM 管理控制台:https://console.aws.amazon.com/iam

  2. 从导航窗格中,选择 Users

  3. 选择创建新用户

  4. 为用户键入名称,然后选择 Create

  5. 在出现的屏幕上,您可以为刚刚创建的 IAM 用户下载安全证书。创建 IAM 用户时将生成一个由访问密钥 ID 和秘密访问密钥组成的访问密钥,用于对您向 AWS 发出的编程请求进行签名。如果您要下载这些安全证书,请选择 Download。否则,请选择 close 返回到用户列表。

    注意

    在此访问步骤之后,您的密钥将无法再通过 AWS 管理控制台获得;您将只有一个副本。为保护您的账户,请保持此信息的机密性,切勿通过电子邮件发送此信息。请勿对组织外部共享密钥,即使有来自 AWS 或 Amazon.com 的询问。合法代表 Amazon 的任何人永远都不会要求您提供秘密密钥。

  6. 要查看用户详细信息页,请从表中选择您的用户。

  7. 选择 Permissions 选项卡,然后展开 Inline Policy

  8. 选择 click here 链接创建新的内联策略。

  9. 选择 Custom Policy,然后选择 Select 提供您自己的策略文档。

  10. 为您的自定义策略创建一个便于记忆的名称,例如 JobCreation

  11. 将以下文本粘贴到您的自定义 Policy Document 中。

    注意

    如果您要更新现有用户,请在更改其权限之前,仔细查看以下文本,因为您可能会无意中授予或禁用您没打算更改的权限。

  12. 选择 Apply Policy (应用策略) 完成您的新内联策略,并返回到控制台中的 IAM Users (用户) 页。

上述过程将创建一个可以在 Snowball 控制台中创建和管理任务的用户。

为 Snowball 创建 IAM 角色

创建的 IAM 角色必须拥有对 Amazon S3 存储桶的读写权限。该角色还必须拥有与 Snowball 的信任关系,以便 AWS 可以在 Snowball 和 Amazon S3 存储桶中写入数据,具体取决于您是导入数据还是导出数据。

在 AWS Snowball 管理控制台中创建任务时,于步骤 4 中,在 Permission (权限) 部分中创建所需的 IAM 角色。此过程是自动的,并且您允许 Snowball 代入的 IAM 角色只用于在带有所传输数据的 Snowball 抵达 AWS 时将您的数据写入到存储桶。此流程包括下列步骤。

为导入任务创建 IAM 角色

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS Snowball 控制台:https://console.amazonaws.cn/importexport/

  2. 选择 Create job

  3. 在第一步中,填写 Amazon S3 导入任务的详细信息,然后选择 Next (下一步)

  4. 在第二步中,在 Permission 下选择 Create/Select IAM Role

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

  5. 检查此页上的详细信息,然后选择允许

    您将返回到 AWS Snowball 管理控制台,其中 Selected IAM role ARN (选择的 IAM 角色 ARN) 包含您刚刚创建的 IAM 角色的 Amazon 资源名称 (ARN)。

  6. 选择 Next (下一步) 完成创建您的 IAM 角色。

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

用于导入任务的 IAM 角色

{ "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" ], "Resource": "arn:aws:s3:::*" } ] }

如果您使用带有 AWS KMS– 托管密钥 (SSE-KMS) 的服务器端加密对与您的导出任务关联的 Amazon S3 存储桶进行加密,则您还需要将以下语句添加到您的 IAM 角色。

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

用于导出任务的 IAM 角色

{ "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 资源所有者,由您负责 Snowball 控制台、Snowball 以及与使用 Snowball 关联的其他资产的访问控制和安全性。这些资产包括 Amazon S3 存储桶、数据传输过程中经过的工作站和本地数据本身。

在某些情况下,我们可以帮助您授予和管理对使用 Snowball 传输数据时所用资源的访问控制。在其他情况下,建议您遵循行业内的访问控制最佳实践。

资源 说明 如何控制访问
AWS Snowball 管理控制台 AWS Snowball 管理控制台是您使用独立工作单位(称为任务)创建和管理本地数据中心与 Amazon S3 之间的数据传输的位置。要访问此控制台,请参阅 AWS Snowball 管理控制台 您可以通过创建或管理 IAM 用户来控制对此资源的访问。有关更多信息,请参阅为 Snowball 创建 IAM 用户
Amazon S3 存储段 Amazon S3 中的所有数据均按单位(称为对象)存储。对象存储在称为存储桶 的容器中。进入 Amazon S3 的所有数据都必须存储在存储桶中。 要将数据导入到 Amazon S3 存储桶,创建导入任务的 IAM 用户必须对 Amazon S3 存储桶拥有读写访问权限。有关向用户授予对 Amazon S3 存储桶的访问权的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南 中的 Amazon S3 如何对存储桶操作请求进行授权示例 1:存储桶拥有者向其用户授予存储桶权限
Snowball 您可以通过仔细分配任务的清单和解锁代码来控制对 Snowball 的访问。
清单 清单是在任务进入 Processing (正在处理) 状态后您可从 AWS Snowball 管理控制台下载的加密文件。Snowball 客户端首次启动后,通过此客户端将清单和解锁代码这两个值传递到 Snowball 时,清单由解锁代码解密。 作为最佳实践,建议您不要将解锁代码副本和该任务的清单保存在同一位置。单独保存这两项有助于防止未授权各方获得与该任务关联的 Snowball 的访问权。例如,可以将清单的副本保存到工作站,并通过电子邮件将代码发送给 IAM 用户以从工作站执行数据传输。此方法仅允许有权访问工作站上所保存文件和 IAM 用户电子邮件地址的人员访问 Snowball。
解锁代码 解锁代码是 29 个字符的代码,由 25 个字母数字字符和 4 个连字符组成。当客户端首次启动,且此代码与清单一起通过 Snowball 客户端传递到 Snowball 时,此代码将对清单进行解密。在您的任务进入 Preparing Snowball (正在准备 Snowball) 状态后,您可以在 AWS Snowball 管理控制台中看到解锁代码。当您为任务下载该清单时,此代码也会显示在对话框中。解锁代码仅出现在屏幕上,而不是下载。 再次说明,作为最佳实践,建议您不要将解锁代码副本和该任务的清单保存在同一位置。单独保存这两项有助于防止未授权各方获得与该任务关联的 Snowball 的访问权。例如,可以将清单的副本保存到工作站,并通过电子邮件将代码发送给 IAM 用户以从工作站执行数据传输。此方法仅允许有权访问工作站上所保存文件和 IAM 用户电子邮件地址的人员访问 Snowball。

本页内容: