本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Snowball 中的授权和访问控制
您必须拥有有效的凭证才能创建 Snowball 任务。您可以使用这些证书来验证您的访问权限。拥有有效证书的请求者还必须拥有资源所有者的权限,才能访问资源所有者的资源。例如,您可以使用Amazon Identity and Access Management (IAM) 服务在您的账户中创建用户。IAM 用户拥有有效的证书来提出请求,但默认情况下,他们无权访问任何资源。接下来,您可以查找有关如何对请求进行身份验证并管理对 Snowball 资源的访问权限的信息。
注意
以下包含特定于 SnowballAmazon Snow 系列管理控制台 和 Snowball 客户端的信息。如果您计划以编程方式创建任务和传输数据,请参阅 Amazon SnowballAPI 参考。
身份验证
每个 Snowball 作业都必须经过身份验证。为此,您可以创建和管理您账户中的 IAM 用户。使用 IAM,您可以在中创建和管理用户和权限Amazon。
Snowball 用户必须具有某些与 IAM 相关的权限Amazon Snow 系列管理控制台才能访问才能创建任务。创建导入或导出任务的 IAM 用户还必须有权访问正确的亚马逊Simple Storage Service (Amazon S3) 资源,例如用于该任务的 Amazon S3 存储桶。
要使用Amazon Snow 系列管理控制台,IAM 用户必须符合以下条件:
-
-
列出您的所有 Amazon S3 存储桶,并根据需要创建新的 Amazon S3 存储桶。
-
创建亚马逊Simple Notification Service (Amazon SNS) 主题。
-
选择 Amazon Key Management Service (Amazon KMS) 密钥。
-
创建 IAM 角色亚马逊资源名称 (ARN)。
有关向用户授予对 Amazon S3 存储桶的访问权限的更多信息,请参阅为 Snowball 创建 IAM 用户。
-
-
必须创建具有您的 Amazon S3 存储桶写入权限的 IAM 角色。该角色还必须与 Snowball 建立信任关系,这样Amazon才能将 Snowball 中的数据写入您指定的 Amazon S3 存储桶。每个作业的任务创建向导会自动执行此步骤;您也可以手动执行此步骤。有关更多信息,请参阅为 Snowball 创建 IAM 角色:
为 Snowball 创建 IAM 用户
如果在 Snowball 控制台中执行工作的账户不是根账户或管理员,则必须使用 IAM 管理控制台向用户授予创建和管理任务所需的权限。以下过程显示如何为此目的创建新的 IAM 用户并通过内联策略向该用户提供必要的权限。
如果您要更新现有 IAM 用户,请从步骤 6 开始。
为 Snowball 创建新的 IAM 用户
-
登录到 Amazon Web Services Management Console,然后通过以下网址打开 IAM 管理控制台:https://console.aws.amazon.com/iam
。 -
从导航窗格中,选择 Users(用户)。
-
选择创建新用户。
-
键入用户的名称,然后选择 “创建”。
-
在出现的屏幕上,您可以为刚刚创建的 IAM 用户下载安全凭证。创建 IAM 用户会生成由访问密钥 ID 和秘密访问密钥结合使用,用于签署对发出的编程请求Amazon。如果要下载这些安全证书,请选择 “下载”。否则,选择 “关闭” 返回您的用户列表。
注意
完成此访问步骤后,您的密钥将无法再通过Amazon管理控制台获得;您拥有唯一的副本。为了保护您的帐户,请对这些信息保密,切勿通过电子邮件发送。请勿对组织外部共享密钥,即使有来自Amazon或 Amazon.com 的询问。合法代表 Amazon 的任何人永远都不会要求您提供密钥。
-
要查看用户详细信息页面,请从表中选择您的用户。
-
选择 “权限” 选项卡,然后展开 “内联策略”。
-
选择 “点击此处” 链接以创建新的内联策略。
-
选择 “自定义策略”,然后选择 “选择” 以提供您自己的策略文档。
-
为你的自定义策略创建一个你会记住的名字,比如
JobCreation
。 -
将以下文本粘贴到您的自定义政策文档中。
注意
如果您要更新现有用户,请在更改其权限之前,仔细查看以下文本,因为您可能会无意中授予或禁用您没打算更改的权限。
-
选择 A pp ly Policy 完成新的内联策略并返回控制台中的 IAM 用户页面。
上述过程创建了一个可以在 Snowball 控制台中创建和管理任务的用户。
为 Snowball 创建 IAM 角色
创建的 IAM 角色必须具有您的 Amazon S3 存储桶的读写权限。该角色还必须与 Snowball 建立信任关系,因此Amazon可以将数据写入 Snowball 和 Amazon S3 存储桶,具体取决于您是导入还是导出数据。
在中创建任务时Amazon Snow 系列管理控制台,在 “权限” 部分的步骤 4 中创建必要的 IAM 角色。此过程是自动的,您允许 Snowball 代入的 IAM 角色仅在装有您传输数据的 Snowball 到达时用于将您的数据写入存储桶Amazon。此流程包括下列步骤。
为导入任务创建 IAM 角色
-
登录Amazon Web Services Management Console并打开Amazon Snowball主机,网址为 https://console.aws.amazon.com/importexport/
。 -
请选择 Create job (创建任务)。
-
在第一步中,填写将任务导入 Amazon S3 的详细信息,然后选择 “下一步”。
-
在第二步中,在 Permission 下选择 Create/Select IAM Role。
IAM 管理控制台打开,显示Amazon用于将对象复制到您指定的 Amazon S3 存储桶的 IAM 角色。
-
检查此页上的详细信息,然后选择允许。
您将返回到 Amazon Snow 系列管理控制台,其中 Selected IAM role ARN (选择的 IAM 角色 ARN) 包含您刚刚创建的 IAM 角色的 Amazon 资源名称 (ARN)。
-
选择 “下一步” 完成您的 IAM 角色的创建。
上述过程创建了一个 IAM 角色,该角色对您计划将数据导入的 Amazon S3 存储桶具有写入权限。创建的 IAM 角色具有以下结构之一,具体取决于它是用于导入任务还是用于导出任务。
用于导入任务的 IAM 角色
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketPolicy", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads", "s3:ListBucket", "s3:HeadBucket", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts", "s3:PutObjectAcl", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
YourS3BucketARN
", "arn:aws:s3:::YourS3BucketARN
/*" ] } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "importexport.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
如果您使用带有Amazon 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 的分段上传,则系统会使用指定的 Amazon KMS 密钥对所有已上传部分进行加密。由于上传的各部分内容已加密,因此必须先对其进行解密,然后才能组合起来完成分段上传。因此,当您使用 SSE-KMS 向 Amazon S3 运行分段上传时,您必须有权解密密Amazon KMS钥 (kms:Decrypt
)。
以下是需要 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 角色示例。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:GetBucketPolicy" ], "Resource": [ "arn:aws:s3:::
YourS3BucketARN
", "arn:aws:s3:::YourS3BucketARN
/*" ] } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "importexport.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
如果您使用带有Amazon KMS —managed 密钥的服务器端加密来加密与导出任务关联的 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 传输数据时使用的资源的访问控制。在其他情况下,我们建议您遵循行业最佳做法进行访问控制。
资源 | 描述 | 如何控制访问权限 |
---|---|---|
Amazon Snow 系列管理控制台 | 在这里,Amazon Snow 系列管理控制台您可以使用称为任务的离散工作单位创建和管理本地数据中心与 Amazon S3 之间的数据传输。要访问此控制台,请参阅 Amazon Snow 系列管理控制台 |
您可以通过创建或管理 IAM 用户来控制对该资源的访问权限。有关更多信息,请参阅为 Snowball 创建 IAM 用户: |
Amazon S3 存储桶 | Amazon S3 中的所有数据都存储在称为对象的单位中。对象存储在名为存储桶的容器中。进入 Amazon S3 的任何数据必须存储在存储桶中。 | 要将数据导入 Amazon S3 存储桶,创建导入任务的 IAM 用户必须具有对您的 Amazon S3 存储桶的读写权限。有关授予用户访问 Amazon S3 存储桶的更多信息,请参阅《Amaz on Simple Storage Service 开发者指南》中的 Amazon S3 如何授权存储桶操作请求和示例 1:存储桶拥有者向其用户授予存储桶权限。 |
Snowball | 你可以通过仔细分发任务清单和解锁代码来控制对 Snowball 的访问权限。 | |
清单 | 清单是一个加密文件,您可以在任务进入 “处理中” 状态Amazon Snow 系列管理控制台后从中下载该文件。首次启动客户端时,当您通过 Snowball 客户端将两个值传递给 Snowball 时,清单由解锁代码解密。 | 作为最佳实践,我们建议您不要将解锁代码的副本保存在与该任务的清单的用户。单独保存这些文件有助于防止未经授权的各方访问与该工作相关的 Snowball。例如,您可以将清单副本保存到工作站,然后通过电子邮件将代码发送给 IAM 用户以执行工作站的数据传输。这种方法将可以访问 Snowball 的人员限制为有权访问保存在工作站上的文件以及该 IAM 用户的电子邮件地址的个人。 |
解锁码 | 解锁码是一个 29 个字符的代码,包含 25 个字母数字字符和 4 个连字符。当首次启动客户端时,此代码将清单与清单一起通过 Snowball 客户端传递给 Snowball 时,会对其进行解密。在您的任务进入 Amazon Snow 系列管理控制台Preparing Snowball 状态后,您可以在 中看到解锁代码。当您下载任务清单时,该代码也会出现在对话框中。解锁码仅显示在屏幕上,无法下载。 | 同样,作为最佳实践,我们建议您不要将解锁代码副本保存在与该任务清单相同的位置。单独保存这些文件有助于防止未经授权的各方访问与该工作相关的 Snowball。例如,您可以将清单副本保存到工作站,然后通过电子邮件将代码发送给 IAM 用户以执行工作站的数据传输。这种方法将可以访问 Snowball 的人员限制为有权访问保存在工作站上的文件以及该 IAM 用户的电子邮件地址的个人。 |