

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

## Deadline Cloud 如何使用 IAM 服務角色
<a name="how-deadline-cloud-manages-credentials"></a>

Deadline Cloud 會自動擔任 IAM 角色，並提供臨時登入資料給工作者、任務和 Deadline Cloud Monitor。此方法消除手動憑證管理，同時透過角色型存取控制來維護安全性。

當您建立監視器、機群和佇列時，您可以指定 Deadline Cloud 代表您擔任的 IAM 角色。然後，工作者和截止日期雲端監視器會從這些角色接收臨時登入資料以供存取 AWS 服務。

## 機群角色
<a name="fleet-role"></a>

設定機群角色，為 Deadline Cloud 工作者提供接收工作所需的許可，並報告該工作的進度。

您通常不需要自行設定此角色。您可以在截止日期雲端主控台中為您建立此角色，以包含必要的許可。使用下列指南來了解此角色的故障診斷詳細資訊。

以程式設計方式建立或更新機群時，請使用 `CreateFleet`或 `UpdateFleet` API 操作指定機群角色 ARN。

### 機群角色的功能
<a name="what-fleet-role-does"></a>

機群角色為工作者提供以下許可：
+ 接收新工作並向截止日期雲端服務報告進行中工作的進度
+ 管理工作者生命週期和狀態
+ 將日誌事件記錄到工作者日誌的 Amazon CloudWatch Logs

### 設定機群角色信任政策
<a name="fleet-role-trust-policy"></a>

您的機群角色必須信任截止日期雲端服務，並限定您的特定陣列範圍。

最佳實務是，信任政策應包含混淆代理人保護的安全條件。若要進一步了解混淆代理人保護，請參閱*截止日期雲端使用者指南*中的[混淆代理人](cross-service-confused-deputy-prevention.md)。
+ `aws:SourceAccount` 確保只有來自相同 的資源 AWS 帳戶 才能擔任此角色。
+ `aws:SourceArn` 將角色假設限制為特定的截止日期雲端陣列。

```
{
  "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 Logs 日誌群組。Deadline Cloud 服務會使用工作者的許可，專門為該特定工作者建立日誌串流。在工作者設定並執行之後，工作者將使用這些許可將日誌事件直接傳送到 CloudWatch Logs。

```
{
  "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. 它會叫用 `deadline:CreateWorker` 向截止日期雲端註冊。

1. 然後，它會叫用 `deadline:AssumeFleetRoleForWorker`來擷取機群角色登入資料。

1. 從現在開始，工作者只會對所有操作使用機群角色登入資料。

工作者開始執行後，不會使用 WorkerHost 角色。服務受管機群不需要此政策。在服務受管機群中，會自動執行引導。

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

處理任務時，工作者會擔任佇列角色。此角色提供完成任務所需的許可。

以程式設計方式建立或更新佇列時，請使用 `CreateQueue`或 `UpdateQueue` API 操作指定佇列角色 ARN。

### 設定佇列角色信任政策
<a name="queue-role-trust-policy"></a>

您的佇列角色必須信任截止日期雲端服務。

最佳實務是，信任政策應包含混淆代理人保護的安全條件。若要進一步了解混淆代理人保護，請參閱*截止日期雲端使用者指南*中的[混淆代理人](cross-service-confused-deputy-prevention.md)。
+ `aws:SourceAccount` 確保只有來自相同 的資源 AWS 帳戶 才能擔任此角色。
+ `aws:SourceArn` 將角色假設限制為特定的截止日期雲端陣列。

```
{
  "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 會根據您的組態為您的佇列建立自訂政策。

此自動建立的政策可讓您存取：

#### 任務附件
<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 Logs 讀取存取權。每個佇列都有自己的日誌群組，每個工作階段都有自己的日誌串流：

```
{
  "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 
+ 為動態工作流程建立新任務的截止日期雲端許可

### 如何使用佇列角色登入資料
<a name="how-queue-role-credentials-used"></a>

Deadline Cloud 提供佇列角色登入資料給：
+ 任務執行期間的工作者
+ 透過截止日期雲端 CLI 的使用者，並在與任務附件和日誌互動時監控

Deadline Cloud 會為每個佇列建立個別的 CloudWatch Logs 日誌群組。任務使用佇列角色登入資料將日誌寫入其佇列的日誌群組。截止日期雲端 CLI 和監視器使用佇列角色 （透過 `deadline:AssumeQueueRoleForRead`) 從佇列的日誌群組讀取任務日誌。截止日期雲端 CLI 和監視器使用佇列角色 （透過 `deadline:AssumeQueueRoleForUser`) 上傳或下載任務附件資料。

## 監控角色
<a name="monitor-role"></a>

設定監控角色，讓截止日期雲端監控 Web 和桌面應用程式存取您的截止日期雲端資源。

以程式設計方式建立或更新監視器時，請使用 `CreateMonitor`或 `UpdateMonitor` API 操作指定監視器角色 ARN。

### 監控角色的功能
<a name="what-monitor-role-does"></a>

監控角色可讓 Deadline Cloud Monitor 提供最終使用者存取：
+ 截止日期雲端整合提交者、CLI 和監視器所需的基本功能
+ 最終使用者的自訂功能

### 設定監控角色信任政策
<a name="monitor-role-trust-policy"></a>

您的監控角色必須信任截止日期雲端服務。

最佳實務是，信任政策應包含混淆代理人保護的安全條件。若要進一步了解混淆代理人保護，請參閱*截止日期雲端使用者指南*中的[混淆代理人](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>

使用截止日期雲端監視器時，服務使用者會使用 AWS IAM Identity Center (IAM Identity Center) 登入，並擔任監視器角色。監控應用程式會使用擔任的角色登入資料來顯示監控 UI，包括陣列、機群、佇列和其他資訊的清單。

使用 Deadline Cloud Monitor 桌面應用程式時，這些登入資料會使用與最終使用者提供的設定檔名稱對應的具名 AWS 登入資料設定檔，在工作站上另外提供。請參閱 [AWS SDK 和工具參考指南](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)，進一步了解具名設定檔。

此具名設定檔是截止日期 CLI 和提交者存取截止日期雲端資源的方式。

### 自訂進階使用案例的監控角色
<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 Monitor 如何使用監控角色登入資料
<a name="how-monitor-uses-credentials"></a>

期限 雲端監視器會在您驗證時自動取得監控角色登入資料。此功能可讓桌面應用程式提供標準 Web 瀏覽器中可用功能以外的增強型監控功能。

當您使用截止日期雲端監視器登入時，它會自動建立您可以與 AWS CLI 或任何其他 AWS 工具搭配使用的設定檔。此設定檔使用監控角色登入資料， AWS 服務 可讓您根據監控角色中的許可，以程式設計方式存取 。

截止日期雲端提交者的運作方式相同 - 他們使用截止日期雲端監視器建立的設定檔，以 AWS 服務 適當的角色許可存取 。

## 期限雲端角色的進階自訂
<a name="advanced-customization"></a>

您可以使用其他許可擴展截止日期雲端角色，以啟用基本轉譯工作流程以外的進階使用案例。此方法利用 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>

將每個藝術家工作站設定為使用截止日期雲端佇列登入資料進行 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
   ```

將 *farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXX* 和 *queue-XXXXXXXXXXXXXXXXXXXXXXXXXXXX *取代為您實際的陣列和佇列 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 登入資料。只有具有特定佇列存取權的使用者才能存取相關聯的儲存庫，透過截止日期雲端的佇列成員資格系統啟用精細存取控制。