View a markdown version of this page

保护作业附件和软件存储桶 - 截止日期云

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

保护作业附件和软件存储桶

每个队列将其任务附件存储在您拥有的 Amazon S3 存储桶中。三部分配置队列与其存储桶之间的连接:

  • 任务附件对 Amazon S3 存储桶中的根前缀进行写入和读取。您可以在 CreateQueue API 调用中指定此根前缀。

  • 存储桶有对应的Queue Role,它指定了向队列用户授予存储桶和根前缀访问权限的角色。创建队列时,您可以在任务附件存储桶和根前缀旁边指定 Queue Role Amazon 资源名称 (ARN)。

  • AssumeQueueRoleForReadAssumeQueueRoleForUser、和 AssumeQueueRoleForWorker API 操作的授权调用会返回一组临时安全证书Queue Role

共享 Amazon S3 存储桶和根前缀的队列也共享对存储在那里的任务附件的访问权限。为每个队列提供自己的存储桶和根前缀,这样队列权限边界也适用于任务附件。例如,当 queueA 和 queueB 有单独的存储分区时,只能访问 queueA 的艺术家无法读取 QueueB 的作业附件。如果多个队列属于同一个安全边界,例如一个节目的队列,则在它们之间共享存储空间是一种合理的简化方法。默认情况下,控制台会为每个队列设置自己的存储桶和根前缀。

要隔离队列,必须将配置为仅Queue Role允许队列访问存储桶和根前缀。在以下示例中,将每个placeholder替换为您的资源特定信息。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::JOB_ATTACHMENTS_BUCKET_NAME", "arn:aws:s3:::JOB_ATTACHMENTS_BUCKET_NAME/JOB_ATTACHMENTS_ROOT_PREFIX/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } }, { "Action": [ "logs:GetLogEvents" ], "Effect": "Allow", "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:/aws/deadline/FARM_ID/*" } ] }

您还必须为角色设置信任政策。在以下示例中,将placeholder文本替换为您的资源特定信息。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Principal": { "Service": "deadline.amazonaws.com" }, "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": "arn:aws:deadline:us-east-1:111122223333:farm/FARM_ID" } } }, { "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Principal": { "Service": "credentials.deadline.amazonaws.com" }, "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": "arn:aws:deadline:us-east-1:111122223333:farm/FARM_ID" } } } ] }

自定义软件 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 安全最佳实践。