本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
保护作业附件和软件存储桶
每个队列将其任务附件存储在您拥有的 Amazon S3 存储桶中。三部分配置队列与其存储桶之间的连接:
-
任务附件对 Amazon S3 存储桶中的根前缀进行写入和读取。您可以在
CreateQueueAPI 调用中指定此根前缀。 -
存储桶有对应的
Queue Role,它指定了向队列用户授予存储桶和根前缀访问权限的角色。创建队列时,您可以在任务附件存储桶和根前缀旁边指定Queue RoleAmazon 资源名称 (ARN)。 -
对
AssumeQueueRoleForReadAssumeQueueRoleForUser、和AssumeQueueRoleForWorkerAPI 操作的授权调用会返回一组临时安全证书Queue Role。
共享 Amazon S3 存储桶和根前缀的队列也共享对存储在那里的任务附件的访问权限。为每个队列提供自己的存储桶和根前缀,这样队列权限边界也适用于任务附件。例如,当 queueA 和 queueB 有单独的存储分区时,只能访问 queueA 的艺术家无法读取 QueueB 的作业附件。如果多个队列属于同一个安全边界,例如一个节目的队列,则在它们之间共享存储空间是一种合理的简化方法。默认情况下,控制台会为每个队列设置自己的存储桶和根前缀。
要隔离队列,必须将配置为仅Queue Role允许队列访问存储桶和根前缀。在以下示例中,将每个placeholder替换为您的资源特定信息。
您还必须为角色设置信任政策。在以下示例中,将placeholder文本替换为您的资源特定信息。
自定义软件 Amazon S3 存储桶
您可以将以下语句添加到您的Queue Role以访问您的 Amazon S3 存储桶中的自定义软件。在以下示例中,SOFTWARE_BUCKET_NAME替换为您的 S3 存储桶的名称和BUCKET_ACCOUNT_OWNER拥有该存储桶的 AWS 账户 ID。
"Statement": [ { "Action": [ "s3:GetObject", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::SOFTWARE_BUCKET_NAME", "arn:aws:s3:::SOFTWARE_BUCKET_NAME/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "BUCKET_ACCOUNT_OWNER" } } } ]
有关 Amazon S3 安全最佳实践的更多信息,请参阅《亚马逊简单存储服务用户指南》中的 Amazon S3 安全最佳实践。