本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Deadline Cloud 的安全最佳實務
AWS Deadline Cloud (Deadline Cloud) 提供許多安全功能,供您在開發和實作自己的安全政策時考慮。以下最佳實務為一般準則,並不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求,因此請將其視為實用建議就好,而不要當作是指示。
注意
如需許多安全主題重要性的詳細資訊,請參閱 共同責任模型
資料保護
為了資料保護目的,我們建議您保護 AWS 帳戶 憑證並使用 AWS Identity and Access Management () 設定個別帳戶IAM。如此一來,每個使用者都只會獲得授與完成其任務所必須的許可。我們也建議您採用下列方式保護資料:
-
對每個帳戶使用多重要素驗證 (MFA)。
-
使用 SSL/TLS 與 AWS 資源通訊。我們需要 TLS 1.2 和 建議 TLS 1.3。
-
使用 設定 API 和使用者活動日誌 AWS CloudTrail。
-
使用 AWS 加密解決方案,以及 中的所有預設安全控制項 AWS 服務。
-
使用進階受管安全服務,例如 Amazon Macie ,可協助探索和保護存放在 Amazon Simple Storage Service (Amazon S3) 中的個人資料。
-
如果您在透過命令列介面或 FIPS 存取 AWS 時需要 140-2 個經過驗證的密碼編譯模組API,請使用 FIPS端點。如需可用FIPS端點的詳細資訊,請參閱聯邦資訊處理標準 (FIPS) 140-2
。
我們強烈建議您絕對不要將客戶帳戶號碼等敏感的識別資訊,放在自由格式的欄位中,例如Name (名稱) 欄位。這包括當您使用 AWS Deadline Cloud 或其他 AWS 服務 使用主控台API AWS CLI、 或 時 AWS SDKs。您輸入至 Deadline Cloud 或其他 服務的任何資料都可能被擷取以包含在診斷日誌中。當您將 URL提供給外部伺服器時,請勿在 中包含憑證資訊,URL以驗證您對該伺服器的請求。
AWS Identity and Access Management 許可
使用使用者、 AWS Identity and Access Management (IAM) 角色和 將最低權限授予使用者,來管理對 AWS 資源的存取。建立憑證管理政策和程序,以建立、分發、輪換和撤銷 AWS 存取憑證。如需詳細資訊,請參閱 IAM 使用者指南 中的IAM最佳實務。
以使用者和群組執行任務
在截止日期雲端中使用佇列功能時,最佳實務是指定作業系統 (OS) 使用者及其主要群組,以便作業系統使用者擁有佇列任務的最低權限許可。
當您指定「以使用者身分執行」 (和群組) 時,提交至佇列之任務的任何程序都會使用該作業系統使用者執行,並將繼承該使用者的關聯作業系統許可。
機群和佇列組態結合,以建立安全狀態。在佇列端,可以指定「以使用者身分執行的任務」和IAM角色來使用佇列任務的作業系統和 AWS 許可。機群會定義基礎設施 (工作者主機、網路、掛載的共用儲存體),當與特定佇列相關聯時,可在佇列中執行任務。工作者主機上可用的資料,需要從一或多個相關聯的佇列中由任務存取。指定使用者或群組有助於保護任務中的資料免受其他佇列、其他已安裝的軟體或其他可存取工作者主機的使用者影響。當佇列沒有使用者時,它會以代理程式使用者身分執行,可以模擬 (sudo
) 任何佇列使用者。如此一來,沒有使用者的佇列可以將權限升級到另一個佇列。
聯網
為了防止流量遭到攔截或重新導向,請務必保護網路流量的路由方式和位置。
建議您以下列方式保護聯網環境:
-
保護 Amazon Virtual Private Cloud (Amazon VPC) 子網路路由表,以控制 IP 層流量的路由方式。
-
如果您在陣列或工作站設定中使用 Amazon Route 53 (Route 53) 作為DNS提供者,請安全存取 Route 53 API。
-
如果您在 AWS 之外使用內部部署工作站或其他資料中心連線至 Deadline Cloud,請保護任何內部部署網路基礎設施。這包括路由器、交換器和其他聯網裝置上的DNS伺服器和路由表。
任務和任務資料
截止日期 雲端任務在工作者主機的工作階段中執行。每個工作階段都會在工作者主機上執行一或多個程序,這通常會要求您輸入資料才能產生輸出。
若要保護此資料,您可以使用佇列設定作業系統使用者。工作者代理程式使用佇列作業系統使用者執行工作階段子程序。這些子程序會繼承佇列作業系統使用者的許可。
建議您遵循最佳實務,以確保存取這些子程序存取的資料。如需詳細資訊,請參閱共同責任模式
陣列結構
您可以透過多種方式排列截止期限雲端機群和佇列。不過,某些安排會帶來安全影響。
一個 陣列具有最安全的界限之一,因為它無法與其他 陣列共用期限雲資源,包括機群、佇列和儲存設定檔。不過,您可以在 陣列中共用外部 AWS 資源,這會損害安全界限。
您也可以使用適當的組態,在相同陣列內的佇列之間建立安全界限。
請遵循下列最佳實務,在相同陣列中建立安全佇列:
-
僅將機群與相同安全界限內的佇列建立關聯。注意下列事項:
-
在工作者主機上執行任務後,資料可能會保留在後面,例如暫存目錄或佇列使用者的主目錄中。
-
無論您提交任務的佇列為何,相同的作業系統使用者都會在服務擁有的機群工作者主機上執行所有任務。
-
任務可能會在工作者主機上留下執行中的程序,讓來自其他佇列的任務能夠觀察其他執行中的程序。
-
-
確保只有相同安全界限內的佇列才能共用任務附件的 Amazon S3 儲存貯體。
-
確保只有相同安全界限內的佇列才能共用作業系統使用者。
-
將任何其他整合到陣列 AWS 中的資源,安全地保護到邊界。
任務連接佇列
任務附件與佇列相關聯,佇列使用 Amazon S3 儲存貯體。
-
任務附件寫入 Amazon S3 儲存貯體中的根字首並從中讀取。您可以在
CreateQueue
API通話中指定此根字首。 -
儲存貯體具有對應的
Queue Role
,指定授予佇列使用者存取儲存貯體和根字首的角色。建立佇列時,您會在任務附件儲存貯體和根字首旁邊指定Queue Role
Amazon Resource Name (ARN)。 -
對
AssumeQueueRoleForRead
、AssumeQueueRoleForUser
和AssumeQueueRoleForWorker
API操作的授權呼叫會傳回一組 的臨時安全憑證Queue Role
。
如果您建立佇列並重複使用 Amazon S3 儲存貯體和根字首,則會有向未經授權方公開資訊的風險。例如,QueueA 和 QueueB 共用相同的儲存貯體和根字首。在安全工作流程中,ArtistA 可以存取 QueueA,但無法存取 QueueB 不過,當多個佇列共用儲存貯體時,ArtistA 可以存取 QueueB 資料中的資料,因為它使用與 QueueA 相同的儲存貯體和根字首。
主控台會設定預設安全的佇列。確保佇列具有 Amazon S3 儲存貯體和根字首的不同組合,除非它們是共同安全界限的一部分。
若要隔離佇列,您必須Queue Role
將 設定為僅允許佇列存取儲存貯體和根字首。在下列範例中,取代每個 placeholder
您的資源特定資訊。
{ "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": "ACCOUNT_ID
" } } }, { "Action": ["logs:GetLogEvents"], "Effect": "Allow", "Resource": "arn:aws:logs:REGION
:ACCOUNT_ID
:log-group:/aws/deadline/FARM_ID
/*" } ] }
您也必須在角色上設定信任政策。在下列範例中,取代 placeholder
包含資源特定資訊的文字。
{ "Version": "2012-10-17", "Statement": [ { "Action": ["sts:AssumeRole"], "Effect": "Allow", "Principal": { "Service": "deadline.amazonaws.com" }, "Condition": { "StringEquals": { "aws:SourceAccount": "
ACCOUNT_ID
" }, "ArnEquals": { "aws:SourceArn": "arn:aws:deadline:REGION
:ACCOUNT_ID
:farm/FARM_ID
" } } }, { "Action": ["sts:AssumeRole"], "Effect": "Allow", "Principal": { "Service": "credentials.deadline.amazonaws.com" }, "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_ID
" }, "ArnEquals": { "aws:SourceArn": "arn:aws:deadline:REGION
:ACCOUNT_ID
:farm/FARM_ID
" } } } ] }
自訂軟體 Amazon S3 儲存貯體
您可以將下列陳述式新增至 ,Queue Role
以存取 Amazon S3 儲存貯體中的自訂軟體。在下列範例中,取代 SOFTWARE_BUCKET_NAME
您的 S3 儲存貯體名稱。
"Statement": [ { "Action": [ "s3:GetObject", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
SOFTWARE_BUCKET_NAME
", "arn:aws:s3:::SOFTWARE_BUCKET_NAME
/*" ] } ]
如需 Amazon S3 安全最佳實務的詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南 中的 Amazon Amazon S3 安全最佳實務。
工作者主機
安全工作者主機有助於確保每個使用者只能為其指派的角色執行操作。
我們建議採取下列最佳實務來保護工作者主機:
-
除非提交至這些佇列的任務位於相同的安全界限內,否則請勿對多個佇列使用相同的
jobRunAsUser
值。 -
請勿將佇列設定為工作者代理程式執行時的
jobRunAsUser
作業系統使用者名稱。 -
授予佇列使用者預期佇列工作負載所需的最低權限作業系統許可。確保他們沒有工作代理程式檔案或其他共用軟體的檔案系統寫入許可。
-
確保 上只有根使用者 Linux 和
Administrator
擁有 帳戶 Windows 擁有並可以修改工作者代理程式檔案。 -
開啟 Linux 工作者主機,請考慮在 中設定
umask
覆寫/etc/sudoers
,允許工作者代理程式使用者以佇列使用者身分啟動程序。此組態有助於確保其他使用者無法存取寫入佇列的檔案。 -
授予受信任的個人對工作者主機的最低權限存取權。
-
限制本機DNS覆寫組態檔案 (
/etc/hosts
上的 Linux 和C:\Windows\system32\etc\hosts
上的 Windows),以及 路由工作站和工作者主機作業系統上的資料表。 -
限制在工作站和工作者主機作業系統上DNS進行組態的許可。
-
定期修補作業系統和所有已安裝的軟體。此方法包括專門與截止日期雲端搭配使用的軟體,例如提交者、轉接器、工作者代理程式、OpenJD 套件和其他。
-
使用強式密碼 Windows queue.
jobRunAsUser
-
定期輪換佇列 的密碼
jobRunAsUser
。 -
確保 的最低權限存取權 Windows 密碼機密和刪除未使用的機密。
-
請勿向佇列
jobRunAsUser
授予排程命令,以在未來執行:-
開啟 Linux,拒絕這些帳戶對
cron
和 的存取at
。 -
開啟 Windows,拒絕這些帳戶存取 Windows 任務排程器。
-
注意
如需定期修補作業系統和已安裝軟體之重要性的詳細資訊,請參閱 共同責任模型
工作站
請務必保護可存取截止日期雲端的工作站。此方法有助於確保您提交至 Deadline Cloud 的任何任務都無法執行向 計費的任意工作負載 AWS 帳戶。
我們建議採取下列最佳實務來保護藝術家工作站。如需詳細資訊,請參閱 共同責任模型
-
保護任何提供 存取權的持久憑證 AWS,包括截止日期 Cloud。如需詳細資訊,請參閱 IAM 使用者指南 中的管理IAM使用者的存取金鑰。
-
僅安裝受信任且安全的軟體。
-
要求使用者與身分提供者聯合使用 AWS 臨時憑證存取 。
-
在截止日期雲端提交者程式檔案上使用安全許可,以防止竄改。
-
授予受信任的個人對藝術家工作站的最低權限存取權。
-
僅使用您透過截止日期雲端監視器取得的提交者和轉接器。
-
限制本機DNS覆寫組態檔案 (
/etc/hosts
上的 Linux 以及 macOS、 和C:\Windows\system32\etc\hosts
於 Windows),以及 路由工作站和工作者主機作業系統上的資料表。 -
在工作站和工作者主機作業系統
/etc/resolve.conf
上限制 的許可。 -
定期修補作業系統和所有已安裝的軟體。此方法包括專門與截止日期雲端搭配使用的軟體,例如提交者、轉接器、工作者代理程式、OpenJD 套件和其他。