的 Amazon S3 存储桶策略Amazon Compute Optimizer - Amazon Compute Optimizer
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

的 Amazon S3 存储桶策略Amazon Compute Optimizer

您可以将 Compute Optimizer 建议以逗号分隔值 (.csv) 文件中的元数据以及 JavaScript 对象表示法 (.json) 文件中的元数据导出到亚马逊 Simple Storage Service (Amazon S3) 存储桶中。有关更多信息,请参阅导出建议

您必须在创建导出任务之前为您的建议导出创建目标 S3 存储桶。Compute Optimizer 不会为您创建 S3 存储桶。您为建议指定的 S3 存储桶导出文件不能公开访问,也不能配置为申请方付款存储桶。

最佳做法是为 Compute Optimizer 导出文件创建专用的 S3 存储桶。有关更多信息,请参阅 。如何创建 S3 存储桶?中的Amazon S3 控制台用户指南. 创建 S3 存储桶后,请确保其具有所需的权限策略,以允许 Compute Optimizer 将导出文件写入该存储桶。有关更多信息,请参阅指定建议导出的现有存储桶

使用加密的 S3 存储桶进行建议导出

对于 Compute Optimizer 建议导出的目标位置,您可以指定 S3 存储桶,这些存储桶使用 Amazon S3 托管密钥 (SSE-S3) 或存储到Amazon Key Management Service(Amazon KMS)。

您必须创建对称 CMK 才能将 S3 存储桶与Amazon KMS已启用加密。对称 CMK 是 Amazon S3 支持的唯一 CMK。有关更多信息,请参阅 。创建密钥中的Amazon KMS开发人员指南. 创建 CMK 后,您必须将其应用于计划用于导出建议的 S3 存储桶。有关更多信息,请参阅 。启用 Amazon S3 默认存储桶加密中的Amazon Simple Storage Service 用户指南.

使用以下过程授予 Compute Optimizer 所需的权限,以便在将建议导出文件保存到加密的 S3 存储桶时,使用 CMK 对其进行加密。

  1. 在 Amazon KMShttps://console.aws.amazon.com/kms 打开 控制台。

  2. 要更改 Amazon 区域,请使用页面右上角的 Region selector (区域选择器)。

  3. 在左侧导航菜单中,选择客户管理的密钥.

  4. 选择您选择用于加密导出 S3 存储桶的 CMK 名称。

  5. 选择密钥策略选项卡,然后选择切换到策略视图.

  6. 选择编辑以编辑密钥策略。

  7. 将以下策略之一复制并粘贴到密钥策略的语句部分中。将斜体中的占位符替换为源Amazon区域和导出任务请求者的帐户号码。

    语句(用于生成 DataKey 操作)允许 Compute Optimizer 调用Amazon KMSAPI 来获取用于加密推荐文件的数据密钥。通过这种方式,上传的数据格式可以容纳存储桶加密设置。否则,Amazon S3 拒绝导出请求。

    注意

    如果现有 CMK 已附加一个或多个策略,请将访问的 Compute Optimizer 添加到这些策略。评估生成的权限集,确保它们适合访问 CMK 的用户。

    • 如果您使用以下策略尚未启用Amazon S3 存储桶密钥。

      { "Sid": "Allow use of the key to Compute Optimizer", "Effect": "Allow", "Principal": { "Service": "compute-optimizer.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:compute-optimizer:myRegion:myAccountID:*" } } }
    • 如果您使用以下策略已启用Amazon S3 存储桶密钥。有关更多信息,请参阅 。使用 Amazon S3 存储桶密钥降低 SSE-KMS 的成本中的Amazon Simple Storage Service 用户指南.

      { "Sid": "Allow use of the key to Compute Optimizer", "Effect": "Allow", "Principal": { "Service": "compute-optimizer.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:compute-optimizer:myRegion:myAccountID:*" } } }

指定建议导出的现有存储桶

使用以下过程向 S3 存储桶添加策略,该策略允许 Compute Optimizer 将建议导出文件写入您的存储桶。

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 选择希望 Compute Optimizer 将导出文件传输到其中的存储桶。

  3. 选择 Permissions

  4. 选择存储桶策略

  5. 复制以下策略,并将其粘贴到存储桶策略编辑器文本框。

    用您的存储桶名称、可选对象前缀、源代码替换斜体占位符Amazon区域和导出任务请求者的帐户号码。如果您计划在创建建议导出时指定对象前缀,请将其包含在策略中。对象前缀是 S3 对象密钥的可选附加内容,可组织 S3 存储桶中的导出文件。

    您必须复制并粘贴此策略才能包含所有三个语句。第一个语句(用于GetBucketAcl操作)允许 Compute Optimizer 获取存储桶的访问控制列表 (ACL)。第二个语句(用于GetBucketPolicyStatus操作)允许 Compution Optimizer 获取存储桶的策略状态,指示存储桶是否为公有存储桶。第三个语句(用于PutObject操作)为 Compute Optimizer 提供了将导出文件放入存储桶的完全控制权。如果缺少这些语句,或者策略中的存储桶名称和可选对象前缀与您在导出请求中指定的内容不匹配,或者策略中的帐户号码与导出任务请求者的帐户号码不匹配,则导出请求将失败。

    注意

    如果现有存储桶已附加一个或多个策略,请将访问的语句添加到这些策略。评估生成的权限集,确保它们适合于访问存储桶的用户。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myBucketName" }, { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:GetBucketPolicyStatus", "Resource": "arn:aws:s3:::myBucketName" }, { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/[optional prefix]/compute-optimizer/myAccountID/*", "Condition": {"StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:compute-optimizer:myRegion:myAccountID:*" } } } ] }

    如果您不想指定对象前缀,请改用以下策略。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myBucketName" }, { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:GetBucketPolicyStatus", "Resource": "arn:aws:s3:::myBucketName" }, { "Effect": "Allow", "Principal": {"Service": "compute-optimizer.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/compute-optimizer/myAccountID/*", "Condition": {"StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:compute-optimizer:myRegion:myAccountID:*" } } } ] }

其他资源

有关 S3 存储桶和策略的更多信息,请参阅Amazon Simple Storage Service 控制台用户指南.