

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 安全なジョブアタッチメントとソフトウェアバケット
<a name="job-attachment-queues"></a>

各キューは、所有する Amazon S3 バケットにジョブアタッチメントを保存します。キューとそのバケット間の接続は、次の 3 つの部分によって設定されます。
+ ジョブアタッチメントは、Amazon S3 バケットのルートプレフィックスとの間で書き込みおよび読み取りを行います。`CreateQueue` API コールでこのルートプレフィックスを指定します。
+ バケットには対応する があり`Queue Role`、キューユーザーにバケットとルートプレフィックスへのアクセスを許可するロールを指定します。キューを作成するときは、ジョブアタッチメントバケットとルートプレフィックスとともに `Queue Role` Amazon リソースネーム (ARN) を指定します。
+ `AssumeQueueRoleForRead`、、および `AssumeQueueRoleForWorker` API オペレーションへの認可された呼び出しは`AssumeQueueRoleForUser`、 の一時的なセキュリティ認証情報のセットを返します`Queue Role`。

Amazon S3 バケットとルートプレフィックスを共有するキューも、そこに保存されているジョブアタッチメントへのアクセスを共有します。各キューに独自のバケットとルートプレフィックスを付け、キューのアクセス許可の境界がジョブアタッチメントにも適用されるようにします。たとえば、QueueA と QueueB に別々のバケットがある場合、QueueA のみにアクセスできるアーティストは QueueB のジョブアタッチメントを読み取ることができません。1 つの番組のキューなど、複数のキューが同じセキュリティ境界に属している場合、それらの間でバケットを共有するのは合理的な単純化です。コンソールは、デフォルトで独自のバケットとルートプレフィックスを使用して各キューを設定します。

個別のバケットは、ジョブアタッチメントを Amazon S3 で区切って保持します。ワーカーホストでは、ジョブはキューのオペレーティングシステムユーザーとしてコードを実行します。ジョブは、他のキューのユーザーが読み取ることができる場所を含め、ユーザーが書き込むことができる任意の場所にファイルを書き込むことができます。ホスト上の分離は、キューオペレーティングシステムユーザーから取得されます。詳細については、「[専用 OS ユーザーとしてジョブを実行する](job-run-as-user.md)」を参照してください。

キューを分離するには、バケットとルートプレフィックスへのキューアクセスのみを許可する`Queue Role`ように を設定する必要があります。次の例では、各{{プレースホルダー}}をリソース固有の情報に置き換えます。

------
#### [ 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}}/*"
        }
    ]
}
```

------

また、ロールに信頼ポリシーを設定する必要があります。次の例では、{{プレースホルダー}}テキストをリソース固有の情報に置き換えます。

------
#### [ 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 バケット
<a name="software-buckets"></a>

に次のステートメントを追加して`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 *Simple Storage Service ユーザーガイド*の「Amazon [ Amazon S3 のセキュリティのベストプラクティス](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html)」を参照してください。