本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
截止日期雲端的安全最佳做法
AWS 截止日期雲端 (截止日期雲端) 提供許多安全性功能,可在您開發和實作自己的安全性原則時考慮。以下最佳實務為一般準則,並不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求,因此請將其視為實用建議就好,而不要當作是指示。
注意
如需有關許多安全性主題重要性的詳細資訊,請參閱共用的責任模型
資料保護
基於資料保護目的,我們建議您使用 AWS Identity and Access Management (IAM) 保護 AWS 帳戶 認證並設定個別帳戶。如此一來,每個使用者都只會獲得授與完成其任務所必須的許可。我們也建議您採用下列方式保護資料:
-
對每個帳戶使用多重要素驗證 (MFA)。
-
使用SSL/TLS與 AWS 資源溝通。我們需要 TLS 1.2 並推薦 TLS 1.3。
-
使用設定API和使用者活動記錄 AWS CloudTrail。
-
使用 AWS 加密解決方案以及其中的所有默認安全控制 AWS 服務。
-
使用 Amazon Macie 等進階受管安全服務,協助探索和保護存放在 Amazon 簡單儲存服務 (Amazon S3) 中的個人資料。
-
如果 AWS 透過命令列介面或存取時需要 FIPS 140-2 驗證的密碼編譯模組API,請使用端點。FIPS如需有關可用FIPS端點的詳細資訊,請參閱聯邦資訊處理標準 (FIPS) 140-2
。
我們強烈建議您絕對不要將客戶帳戶號碼等敏感的識別資訊,放在自由格式的欄位中,例如Name (名稱) 欄位。這包括當您使用 AWS 截止日期雲端或其他 AWS 服務 使用主控台API、 AWS CLI、或時 AWS SDKs。您輸入到截止日期雲端或其他服務的任何資料都可能會被拾取以包含在診斷記錄中。當您提供URL給外部伺服器時,請勿在中包含認證資訊URL以驗證您對該伺服器的要求。
AWS Identity and Access Management 權限
使用 user、 AWS Identity and Access Management (IAM) 角色以及授與使用者最低權限來管理 AWS 資源的存取權。建立憑證管理原則和程序,以建立、散佈、輪換及撤銷 AWS 存取認證。如需詳細資訊,請參閱《IAM使用指南》中的IAM最佳作法。
以使用者和群組身分執行工作
在 Deptionate Cloud 中使用佇列功能時,最佳做法是指定作業系統 (OS) 使用者及其主要群組,讓作業系統使用者擁有佇列工作的最低權限。
當您指定「執行身分使用者」(和群組) 時,提交至佇列之作業的任何處理程序都會使用該 OS 使用者執行,並繼承該使用者的相關作業系統權限。
叢集和佇列組態結合在一起,以建立安全性狀態。在佇列端,可以指定「Job 業以使用者身分執行」和IAM角色,以使用作業系統和佇列作業的 AWS
權限。叢集會定義基礎結構 (背景工作者主機、網路、掛接的共用儲存體),當與特定佇列相關聯時,會執行佇列中的工作。Worker 主機上可用的資料必須由一或多個關聯佇列中的工作存取。指定使用者或群組有助於保護工作中的資料,不受其他佇列、其他已安裝的軟體或其他具有 Worker 主機存取權限的使用者的影響。當佇列沒有使用者時,它會以可模擬 (sudo
) 任何佇列使用者的代理程式使用者身分執行。如此一來,沒有使用者的佇列就可以將權限提升到另一個佇列。
聯網
若要防止流量遭到攔截或重新導向,確保路由網路流量的方式和位置非常重要。
我們建議您以下列方式保護您的網路環境:
-
保護 Amazon Virtual Private Cloud (AmazonVPC) 子網路路由表,以控制 IP 層流量的路由方式。
-
如果您在伺服器陣列或工作站設定中使用 Amazon Route 53 (Route 53) 做為DNS提供者,請安全存取 Route 53 API。
-
如果您在外部 ( AWS 例如使用內部部署工作站或其他資料中心) 連線到 Detail Cloud,請保護任何內部部署網路基礎結構的安全 這包括路由器、交換器和其他網路裝置上的DNS伺服器和路由表。
工作和工作資料
截止日期雲端工作會在工作者主機上的工作階段 每個工作階段都會在 Worker 主機上執行一或多個處理序,這通常需要您輸入資料才能產生輸出。
若要保護這些資料,您可以使用佇列設定作業系統使用者。Worker 代理程式會使用佇列 OS 使用者來執行工作階段子處理程序。這些子進程繼承隊列 OS 用戶的權限。
我們建議您遵循最佳做法,以確保存取這些子程序存取的資料安全。如需詳細資訊,請參閱共同責任模式
農場結構
您可以通過多種方式安排截止日期雲艦隊和隊列。但是,某些安排存在安全隱患。
伺服器陣列具有最安全的界限之一,因為它無法與其他伺服器陣列 (包括叢集、佇列和儲存區設定檔) 共用 Detection Cloud 資源。不過,您可以共用伺服器陣列內的外部 AWS 資源,這會損害安全性邊界。
您也可以使用適當的組態,在相同伺服器陣列內的佇列之間建立安全性界限。
請遵循下列最佳做法,在相同的伺服器陣列中建立安全佇列:
-
僅將叢集與相同安全性界限內的佇列產生關聯。注意下列事項:
-
在 Worker 主機上執行工作後,資料可能會保留在後面,例如暫存目錄或佇列使用者的主目錄中。
-
相同的作業系統使用者會在服務擁有的叢集 Worker 主機上執行所有作業,而不論您將工作提交至哪個佇列。
-
工作可能會讓處理序在 Worker 主機上執行,讓來自其他佇列的工作可以觀察其他執行中的處理序。
-
-
確保只有在相同安全邊界內的佇列共用 Amazon S3 儲存貯體以存放任務附件。
-
確定只有位於相同安全性界限內的佇列共用作業系統使用者。
-
保護整合至伺服器陣列邊界的任何其他 AWS 資源。
Job 附件佇列
Job 務附件與使用 Amazon S3 儲存貯體的佇列相關聯。
-
從 Amazon S3 儲存貯體中的根前綴寫入和讀取 Job 務附件。您可以在
CreateQueue
API呼叫中指定此根前置詞。 -
值區具有對應的角色
Queue Role
,可指定授與佇列使用者存取值區和根前置詞的角色。建立佇列時,您可以在任務附件儲存貯體和根前置詞旁邊指定Queue Role
Amazon 資源名稱 (ARN)。 -
授權呼叫
AssumeQueueRoleForRead
AssumeQueueRoleForUser
、和AssumeQueueRoleForWorker
API作業會傳回一組的暫時安全登入資料Queue Role
。
如果您建立佇列並重複使用 Amazon S3 儲存貯體和根前綴,則可能會向未經授權的方披露資訊。例如,QueEA 和 QueueB 共享相同的存儲桶和根前綴。在安全的工作流程中,藝術家可以存取佇列,但不能存取佇列 B。不過,當多個佇列共用一個儲存貯體時,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 簡單儲存服務使用者指南中的 Amazon S3 安全最佳實務。
工作者主機
保護 Worker 主機,以協助確保每位使用者只能針對其指派的角色執行作業。
我們建議採用下列最佳做法來保護 Worker 主機:
-
除非提交至這些佇列的工作位於相同的安全性界限內,否則請勿在多個佇列中使用相同的
jobRunAsUser
值。 -
請勿
jobRunAsUser
將佇列設定為 Worker 代理程式執行的作業系統使用者名稱。 -
授與佇列使用者預定佇列工作負載所需的最低權限作業系統權限。確定他們沒有檔案系統寫入工作代理程式檔案或其他共用軟體的權限。
-
請確定只有 root 使用者Linux和擁有的帳號
Administrator
擁有,而且可以修改 Worker 代理程式程式檔案。Windows -
在 Linux Worker 主機上,請考慮在中配置
umask
覆寫,/etc/sudoers
以允許 Worker 代理程式使用者以佇列使用者身分啟動處理序。此設定有助於確保其他使用者無法存取寫入佇列的檔案。 -
授與受信任的個人對 Worker 主機的最低權限存取權。
-
限制對本機DNS覆寫組態檔的權限 (開
/etc/hosts
啟Linux和開C:\Windows\system32\etc\hosts
啟Windows,以及路由工作站和 Worker 主機作業系統上的表格。 -
限制工作站和 Worker 主機作業系統上DNS組態的權限。
-
定期修補操作系統和所有已安裝的軟件。這種方法包括專門與截止日期雲端配合使用的軟體,例如提交者、轉接器、背景工作者代理程式、OpenJD套件等。
-
對Windows佇列使用強式密碼
jobRunAsUser
。 -
定期輪換佇列的密碼
jobRunAsUser
。 -
確保密碼的最低權限存取權限會隱藏並刪除未使用的Windows密碼。
-
不要授予隊列
jobRunAsUser
權限的計劃命令 future 運行:-
開啟時Linux,拒絕這些帳戶存取
cron
和at
。 -
開啟時Windows,拒絕這些帳戶對Windows工作排程器的存取權。
-
注意
如需有關定期修補作業系統和已安裝軟體之重要性的詳細資訊,請參閱共同的責任模型
工作站
它是重要的是要保護工作站與訪問截止日期雲. 此方法有助於確保您提交到 Deptionate Cloud 的任何工作都無法執行向您計費的任意工作負載 AWS 帳戶。
我們建議採用下列最佳作法來保護藝術家工作站。如需詳細資訊,請參閱 共同責任模型
-
保護任何提供存取權的持續認證 AWS,包括截止日期雲端。如需詳細資訊,請參閱《使IAM用指南》中的〈管理使用IAM者的存取金鑰〉。
-
只安裝受信任、安全的軟體。
-
要求與身分識別提供者聯盟的使用者才能使用臨時認證進行存取 AWS 。
-
在截止日期雲端提交者程式檔案上使用安全權限,以防止竄改。
-
授予受信任的個人最低權限存取藝術家工作站。
-
只能使用您透過截止日期雲端監視器取得的提交者和介面卡。
-
限制工作站
/etc/hosts
和 Worker 主機作業系統上的資料表的權限和路由。 -
將工作站和 Worker 主機作業系統
/etc/resolv.conf
上的權限限制為。 -
定期修補操作系統和所有已安裝的軟件。這種方法包括專門與截止日期雲端配合使用的軟體,例如提交者、轉接器、背景工作者代理程式、OpenJD套件等。