

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

# 服务角色
<a name="security-iam-service-roles"></a>

## 截止日期云如何使用 IAM 服务角色
<a name="how-deadline-cloud-manages-credentials"></a>

Deadline Cloud 会自动担任 IAM 角色并为员工、工作和 Deadline Cloud 监控器提供临时证书。这种方法消除了手动凭证管理，同时通过基于角色的访问控制来维护安全性。

在创建监控器、队列和队列时，您可以指定 Deadline Cloud 代表您担任的 IAM 角色。然后，工作人员和 Deadline Cloud 监控器会收到来自这些角色的临时凭证进行访问 AWS 服务。

## 舰队角色
<a name="fleet-role"></a>

配置队列角色以授予 Deadline Cloud 工作人员接收工作和报告工作进度所需的权限。

通常，您不必自己配置此角色。可以在 Deadline Cloud 控制台中为您创建此角色以包含必要的权限。使用以下指南了解此角色的详细信息以进行故障排除。

以编程方式创建或更新队列时，请使用或 API 操作指定舰队角色 ARN。`CreateFleet` `UpdateFleet`

### 舰队角色的作用
<a name="what-fleet-role-does"></a>

舰队角色为工作人员提供以下权限：
+ 接收新工作并向 Deadline Cloud 服务报告正在进行的工作进度
+ 管理工作人员的生命周期和状态
+ 将日志事件记录到 Amazon CloudWatch 日志中以获取工作日志

### 设置舰队角色信任策略
<a name="fleet-role-trust-policy"></a>

您的舰队角色必须信任 Deadline Cloud 服务，并且范围仅限于您的特定服务器场。

作为最佳实践，信任策略应包括保护混乱副手的安全条件。要了解有关混乱副手保护的更多信息，请参阅 De *adline Cloud 用户指南*中的[困惑副手](cross-service-confused-deputy-prevention.md)。
+ `aws:SourceAccount`确保只有来自同一个人的资源 AWS 账户 才能担任此角色。
+ `aws:SourceArn`将角色担任限制为特定的 Deadline Cloud 场。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowDeadlineCredentialsService",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "credentials.deadline.amazonaws.com"
      },
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "YOUR_ACCOUNT_ID"
        },
        "ArnEquals": {
          "aws:SourceArn": "arn:aws:deadline:REGION:YOUR_ACCOUNT_ID:farm/YOUR_FARM_ID"
        }
      }
    }
  ]
}
```

### 附加舰队角色权限
<a name="fleet-role-permissions"></a>

将以下 AWS 托管策略附加到您的队列角色：

[AWSDeadlineCloud-FleetWorker](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSDeadlineCloud-FleetWorker.html)

此托管策略为以下各项提供权限：
+ `deadline:AssumeFleetRoleForWorker`-允许工作人员刷新其凭证。
+ `deadline:UpdateWorker`-允许工作人员更新其状态（例如，退出时更改为 “已停止”）。
+ `deadline:UpdateWorkerSchedule`-用于获取工作和报告进度。
+ `deadline:BatchGetJobEntity`-用于获取工作信息。
+ `deadline:AssumeQueueRoleForWorker`-用于在任务执行期间访问队列角色凭证。

### 为加密场添加 KMS 权限
<a name="fleet-role-kms-permissions"></a>

如果您的服务器场是使用 KMS 密钥创建的，请将这些权限添加到您的队列角色中，以确保工作人员可以访问服务器场中的加密数据。

仅当您的服务器场具有关联的 KMS 密钥时，才需要 KMS 权限。`kms:ViaService`条件必须使用格式`deadline.{region}.amazonaws.com`。

创建队列时，会为该队列创建 CloudWatch 日志组。Deadline Cloud 服务使用工作人员的权限来创建专门针对该特定工作人员的日志流。工作器设置并运行后，工作人员将使用这些权限将日志事件直接发送到 Lo CloudWatch gs。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "CreateLogStream",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogStream"
      ],
      "Resource": "arn:aws:logs:REGION:YOUR_ACCOUNT_ID:log-group:/aws/deadline/YOUR_FARM_ID/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:CalledVia": [
            "deadline.REGION.amazonaws.com"
          ]
        }
      }
    },
    {
      "Sid": "ManageLogEvents",
      "Effect": "Allow",
      "Action": [
        "logs:PutLogEvents",
        "logs:GetLogEvents"
      ],
      "Resource": "arn:aws:logs:REGION:YOUR_ACCOUNT_ID:log-group:/aws/deadline/YOUR_FARM_ID/*"
    },
    {
      "Sid": "ManageKmsKey",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:DescribeKey",
        "kms:GenerateDataKey"
      ],
      "Resource": "YOUR_FARM_KMS_KEY_ARN",
      "Condition": {
        "StringEquals": {
          "kms:ViaService": "deadline.REGION.amazonaws.com"
        }
      }
    }
  ]
}
```

### 修改舰队角色
<a name="modifying-fleet-role"></a>

舰队角色的权限不可自定义。所描述的权限始终是必需的，添加其他权限无效。

## 客户管理的车队托管角色
<a name="customer-managed-fleet-host-role"></a>

如果您在 Amazon EC2 实例或本地主机上使用客户管理的队列，请设置 WorkerHost 角色。

### 这个 WorkerHost 角色是做什么的
<a name="what-workerhost-role-does"></a>

该 WorkerHost 角色在客户管理的车队主机上引导员工。它为主机提供了执行以下操作所需的最低权限：
+ 在截止日期云中创建工作人员
+ 扮演舰队角色来获取操作凭证
+ 使用舰队标签标记工作人员（如果启用了标签传播）

### 设置 WorkerHost 角色权限
<a name="workerhost-role-permissions"></a>

将以下 AWS 托管策略附加到您的 WorkerHost 角色：

[AWSDeadlineCloud-WorkerHost](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSDeadlineCloud-WorkerHost.html)

此托管策略为以下各项提供权限：
+ `deadline:CreateWorker`-允许主持人注册新工作人员。
+ `deadline:AssumeFleetRoleForWorker`-允许主机扮演舰队角色。
+ `deadline:TagResource`-允许在创建过程中标记工作人员（如果启用）。
+ `deadline:ListTagsForResource`-允许读取舰队标签进行传播。

### 了解引导流程
<a name="bootstrap-process"></a>

该 WorkerHost 角色仅在工作器初始启动期间使用：

1. 工作器代理使用 WorkerHost 凭据在主机上启动。

1. 它会调用在 Deadlin `deadline:CreateWorker` e Cloud 上注册。

1. 然后它会调用`deadline:AssumeFleetRoleForWorker`以获取舰队角色证书。

1. 从现在开始，工作人员仅使用舰队角色凭证进行所有操作。

在工作人员开始运行后不使用该 WorkerHost 角色。服务管理的车队不需要此政策。在服务管理的队列中，引导是自动执行的。

## 队列角色
<a name="queue-role"></a>

队列角色由工作人员在处理任务时担任。此角色提供完成任务所需的权限。

以编程方式创建或更新队列时，请使用`CreateQueue``UpdateQueue`或 API 操作指定队列角色 ARN。

### 设置队列角色信任策略
<a name="queue-role-trust-policy"></a>

您的队列角色必须信任 Deadline Cloud 服务。

作为最佳实践，信任策略应包括保护混乱副手的安全条件。要了解有关混乱副手保护的更多信息，请参阅 De *adline Cloud 用户指南*中的[困惑副手](cross-service-confused-deputy-prevention.md)。
+ `aws:SourceAccount`确保只有来自同一个人的资源 AWS 账户 才能担任此角色。
+ `aws:SourceArn`将角色担任限制为特定的 Deadline Cloud 场。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "credentials.deadline.amazonaws.com",
          "deadline.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "YOUR_ACCOUNT_ID"
        },
        "ArnEquals": {
          "aws:SourceArn": "arn:aws:deadline:us-west-2:123456789012:farm/{farm-id}"
        }        
      }
    }
  ]
}
```

### 了解队列角色权限
<a name="queue-role-permissions"></a>

队列角色不使用单个托管策略。相反，当您在控制台中配置队列时，Deadline Cloud 会根据您的配置为您的队列创建自定义策略。

此自动创建的策略提供对以下内容的访问权限：

#### Job 附件
<a name="job-attachments-permissions"></a>

对您指定 Amazon S3 存储桶的任务输入和输出文件具有读写权限：

```
{
  "Effect": "Allow",
  "Action": [
    "s3:GetObject",
    "s3:PutObject", 
    "s3:ListBucket",
    "s3:GetBucketLocation"
  ],
  "Resource": [
    "arn:aws:s3:::YOUR_JOB_ATTACHMENTS_BUCKET",
    "arn:aws:s3:::YOUR_JOB_ATTACHMENTS_BUCKET/YOUR_PREFIX/*"
  ],
  "Condition": {
    "StringEquals": {
      "aws:ResourceAccount": "YOUR_ACCOUNT_ID"
    }
  }
}
```

#### 作业日志
<a name="job-logs-permissions"></a>

读取该队列中作业 CloudWatch 日志的访问权限。每个队列都有自己的日志组，每个会话都有自己的日志流：

```
{
  "Effect": "Allow",
  "Action": [
    "logs:GetLogEvents"
  ],
  "Resource": "arn:aws:logs:REGION:YOUR_ACCOUNT_ID:log-group:/aws/deadline/YOUR_FARM_ID/*"
}
```

#### 第三方软件
<a name="dcc-software-permissions"></a>

可以下载由 Deadline Cloud 支持的第三方软件（例如 Maya、Blender 等）：

```
{
  "Effect": "Allow",
  "Action": [
    "s3:ListBucket",
    "s3:GetObject"
  ],
  "Resource": "*",
  "Condition": {
    "ArnLike": {
      "s3:DataAccessPointArn": "arn:aws:s3:*:*:accesspoint/deadline-software-*"
    },
    "StringEquals": {
      "s3:AccessPointNetworkOrigin": "VPC"
    }
  }
}
```

### 为您的任务添加权限
<a name="add-permissions-for-jobs"></a>

为您的队列角色添加任务需要访问的权限。 AWS 服务 在编写 OpenJobDescription 步骤脚本时， AWS CLI 和 SDK 将自动使用您的队列角色提供的凭据。使用它来访问完成工作所需的其他服务。

示例使用案例包括：
+  用于获取自定义数据
+ 通过隧道传输到自定义许可证服务器的 SSM 权限
+ CloudWatch 用于发布自定义指标
+ Deadline Cloud 允许为动态工作流程创建新作业

### 队列角色凭证的使用方式
<a name="how-queue-role-credentials-used"></a>

Deadline Cloud 提供队列角色凭证给
+ 工作执行期间的工作人员
+ 用户在与作业附件和日志交互时通过 Deadline Cloud CLI 和监控器

Deadline Cloud 为每个队列创建单独的 CloudWatch 日志日志组。作业使用队列角色凭据将日志写入队列的日志组。Deadline Cloud CLI 和监控器使用队列角色（通过`deadline:AssumeQueueRoleForRead`）从队列的日志组中读取作业日志。Deadline Cloud CLI 和监控器使用队列角色（通过`deadline:AssumeQueueRoleForUser`）上传或下载作业附件数据。

## 监视者角色
<a name="monitor-role"></a>

配置监控角色以授予 Deadline Cloud 监控器 Web 和桌面应用程序访问您的 Deadline Cloud 资源的权限。

以编程方式创建或更新监控器时，请使用`CreateMonitor``UpdateMonitor`或 API 操作指定监控角色 ARN。

### 监视者角色的用途
<a name="what-monitor-role-does"></a>

监视者角色使 Deadline Cloud 监控器能够为最终用户提供访问以下内容的权限：
+ Deadline Cloud 集成提交者、CLI 和监控器所需的基本功能
+ 为最终用户提供自定义功能

### 设置监控角色信任策略
<a name="monitor-role-trust-policy"></a>

您的监控角色必须信任 Deadline Cloud 服务。

作为最佳实践，信任策略应包括保护混乱副手的安全条件。要了解有关混乱副手保护的更多信息，请参阅 De *adline Cloud 用户指南*中的[困惑副手](cross-service-confused-deputy-prevention.md)。

`aws:SourceAccount`确保只有来自同一个人的资源 AWS 账户 才能担任此角色。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "credentials.deadline.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "YOUR_ACCOUNT_ID"
        }
      }
    }
  ]
}
```

### 附加监视者角色权限
<a name="monitor-role-permissions"></a>

将以下所有 AWS 托管策略附加到您的监控角色以进行基本操作：
+ [AWSDeadlineCloud-UserAccessFarms](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSDeadlineCloud-UserAccessFarms.html)
+ [AWSDeadlineCloud-UserAccessFleets](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSDeadlineCloud-UserAccessFleets.html)
+ [AWSDeadlineCloud-UserAccessJobs](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSDeadlineCloud-UserAccessJobs.html)
+ [AWSDeadlineCloud-UserAccessQueues](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSDeadlineCloud-UserAccessQueues.html)

### 监视者角色的工作原理
<a name="how-monitor-role-works"></a>

使用 Deadline Cloud 监控器时，服务用户使用 AWS IAM Identity Center （IAM Identity Center）登录，并担任监控角色。监视器应用程序使用代入的角色凭据来显示监视器用户界面，包括服务器场、队列、队列和其他信息的列表。

使用 Deadline Cloud monitor 桌面应用程序时，还会使用与最终用户提供的配置文件名称相对应的命名 AWS 凭据配置文件在工作站上提供这些凭据。在 [AWS SDK 和工具参考指南](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)中了解有关命名配置文件的更多信息。

这个命名的个人资料是 Deadline CLI 和提交者访问 Deadline Cloud 资源的方式。

### 自定义高级用例的监视者角色
<a name="customizing-monitor-role"></a>

您可以自定义监视者角色以修改用户在每个访问级别（查看者、参与者、管理者、所有者）可以执行的操作，或者添加高级工作流程的权限。

#### 自定义访问级别权限
<a name="customizing-access-levels"></a>

附加到监控角色的四个 AWS 托管策略控制每个访问级别可以执行的操作。您可以使用`deadline:MembershipLevel`条件键向监控角色添加自定义策略，以授予或限制特定访问级别的权限。

例如，要允许参与者更新和取消作业（通常仅限于管理员和所有者），请添加如下政策：

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "deadline:UpdateJob",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "deadline:MembershipLevel": "CONTRIBUTOR"
        }
      }
    }
  ]
}
```

根据此政策，投稿人除了提交工作外，还可以更新和取消作业。

#### 为高级工作流程添加权限
<a name="adding-monitor-permissions"></a>

您可以向监控角色添加自定义 IAM 策略，向所有监控用户授予额外权限。这对于高级脚本工作流程非常有用，在这些工作流程中，用户需要访问 AWS 服务 超出标准的 Deadline Cloud 功能的权限。

修改您的监视者角色时，请遵循以下准则：
+ 不要移除任何托管策略。移除这些策略会中断监视器功能。

### Deadline 云监控器如何使用监控角色凭据
<a name="how-monitor-uses-credentials"></a>

Deadline Cloud monitor 会在您进行身份验证时自动获取监控角色凭据 此功能使桌面应用程序能够提供比标准 Web 浏览器更强大的监控功能。

当你使用 Deadline Cloud 监控器登录时，它会自动创建一个可供你使用 AWS CLI 或任何其他 AWS 工具的配置文件。此配置文件使用监控角色证书， AWS 服务 根据您的监控角色中的权限为您提供编程访问权限。

Deadline Cloud 提交者的工作方式相同，他们使用 Deadline Cloud monitor 创建的个人资料以适当的角色权限 AWS 服务 进行访问。

## 最后期限云角色的高级自定义
<a name="advanced-customization"></a>

您可以扩展具有额外权限的 Deadline Cloud 角色，以启用基本渲染工作流程之外的高级用例。这种方法利用 Deadline Cloud 的访问管理系统， AWS 服务 根据队列成员资格控制对其他人的访问权限。

### 与团队协作 AWS CodeCommit
<a name="codecommit-collaboration"></a>

为您的队列角色添加 AWS CodeCommit 权限，以便在项目存储库上启用团队协作。这种方法将 Deadline Cloud 的访问管理系统用于其他用例——只有有权访问特定队列的用户才能获得这些 AWS CodeCommit 权限，从而允许您通过 Deadline Cloud 队列成员资格管理每个项目的存储库访问权限。

这对于美术师需要访问存储在存储 AWS CodeCommit 库中的项目特定资源、脚本或配置文件作为其渲染工作流程一部分的场景非常有用。

#### 为队列角色添加 AWS CodeCommit 权限
<a name="add-codecommit-permissions-advanced"></a>

向您的队列角色添加以下权限以启用 AWS CodeCommit 访问权限：

```
{
  "Effect": "Allow",
  "Action": [
    "codecommit:GitPull",
    "codecommit:GitPush",
    "codecommit:GetRepository",
    "codecommit:ListRepositories"
  ],
  "Resource": "arn:aws:codecommit:REGION:YOUR_ACCOUNT_ID:PROJECT_REPOSITORY"
}
```

#### 在艺术家工作站上设置凭证提供者
<a name="setup-credential-provider-advanced"></a>

将每个艺术家工作站配置为使用 Deadline Cloud 队列凭据进行 AWS CodeCommit 访问。此设置在每个工作站上完成一次。

**配置凭证提供商**

1. 在您的 AWS 配置文件中添加凭证提供商配置文件 (`~/.aws/config`)：

   ```
   [profile queue-codecommit]
   credential_process = deadline queue export-credentials --farm-id farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --queue-id queue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   ```

1. 将 Git 配置为使用此配置文件 AWS CodeCommit 存储库：

   ```
   git config --global credential.https://git-codecommit---REGION.amazonaws.com.rproxy.govskope.us.helper '!aws codecommit credential-helper --profile queue-codecommit $@'
   git config --global credential.https://git-codecommit---REGION.amazonaws.com.rproxy.govskope.us.UseHttpPath true
   ```

用实际*queue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*的服务器场*farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*和队列替换和 IDs。*REGION*替换为您 AWS 所在的地区（例如，`us-west-2`）。

#### AWS CodeCommit 与队列凭证一起使用
<a name="using-codecommit-with-queue-credentials-advanced"></a>

配置完成后，Git 操作将在访问 AWS CodeCommit 仓库时自动使用队列角色凭证。该`deadline queue export-credentials`命令返回如下所示的临时证书：

```
{
  "Version": 1,
  "AccessKeyId": "ASIA...",
  "SecretAccessKey": "...",
  "SessionToken": "...",
  "Expiration": "2025-11-10T23:02:23+00:00"
}
```

这些凭据会根据需要自动刷新，Git 操作将无缝运行：

```
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/PROJECT_REPOSITORY
git pull
git push
```

现在，艺术家无需单独的 AWS CodeCommit 凭据即可使用队列权限访问项目存储库。只有有权访问特定队列的用户才能访问关联的存储库，从而通过 Deadline Cloud 的队列成员资格系统实现精细的访问控制。