

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

# 在 AWS PCS 中輪換叢集秘密
<a name="cluster-secret-rotation"></a>

使用 AWS Secrets Manager 受管輪換在 AWS PCS 中輪換叢集秘密。定期秘密輪換是維護 HPC 環境中強式安全狀態的安全最佳實務。此功能可讓您符合產業合規標準，包括 HIPAA 和 FedRAMP，這需要定期輪換登入資料。

叢集秘密提供雙重用途：驗證加入叢集的運算節點，以及做為 Slurm REST API 身分驗證的 JWT 金鑰。輪換時，兩個層面都會同時受到影響。

## 叢集秘密輪換的運作方式
<a name="cluster-secret-rotation-overview"></a>

手動準備以在秘密輪換期間維持叢集穩定性：

1. **準備** – 將所有運算節點群組擴展到 0 容量，並確保沒有任務正在執行

1. **輪換** – 透過 Secrets Manager 主控台或 API 啟動輪換

1. **監控** – 透過 CloudTrail 事件追蹤進度

1. **復原** – 將運算節點群組擴展回所需的容量

在輪換期間，您的叢集會保持 `ACTIVE` 狀態，且計費會繼續正常。程序通常需要幾分鐘的時間。

## 要求與限制
<a name="cluster-secret-rotation-requirements"></a>

在輪換叢集秘密之前，請先完成下列要求：
+ 叢集必須處於 `ACTIVE`或 `UPDATE_FAILED` 狀態
+ IAM 角色必須具有 `secretsmanager:RotateSecret` 許可
+ 所有運算節點群組都必須擴展至 0 容量
+ 在輪換之前停止所有任務

限制:
+ 每次輪換所需的手動準備
+ 現有的 JWT 字符無效，需要重新發行
+ BYO 登入節點在輪換後需要手動秘密更新

**Topics**
+ [叢集秘密輪換的運作方式](#cluster-secret-rotation-overview)
+ [要求與限制](#cluster-secret-rotation-requirements)
+ [在 AWS PCS 中輪換叢集秘密](cluster-secret-rotation-procedure.md)
+ [AWS PCS 中叢集秘密輪換的常見問題](cluster-secret-rotation-faq.md)
+ [對 AWS PCS 中的叢集秘密輪換進行故障診斷](cluster-secret-rotation-troubleshooting.md)

# 在 AWS PCS 中輪換叢集秘密
<a name="cluster-secret-rotation-procedure"></a>

輪換您的叢集秘密以符合安全要求，並解決潛在的入侵。此程序需要讓您的叢集進入維護模式。

## 先決條件
<a name="cluster-secret-rotation-procedure-prerequisites"></a>
+ 具有 `secretsmanager:RotateSecret` 許可的 IAM 角色
+ 叢集處於 `ACTIVE`或 `UPDATE_FAILED` 狀態

## 程序
<a name="cluster-secret-rotation-procedure-steps"></a>

1. 通知叢集使用者即將到來的維護時段。

1. 透過將所有運算節點群組擴展到 0 容量，將叢集置於維護模式。

   1. 使用 UpdateComputeNodeGroup API，將所有運算節點群組的 minInstanceCount 和 maxInstanceCount 設定為 0。

   1. 等到所有節點停止。

   1. 選用：在您終止容量以進行正常任務處理之前，使用 Slurm 命令耗盡排程器佇列。

1. 透過 Secrets Manager 啟動輪換。
   + **主控台方法**：

     1. 導覽至 Secrets Manager，選取叢集秘密，然後選擇**輪換秘密**。
   + **API 方法**：

     1. 使用 Secrets Manager `rotate-secret` API。

1. 監控輪換進度。

   1. 透過 CloudTrail 事件追蹤進度。

   1. `lastRotatedDate` 檢查 Secrets Manager 主控台或 `secretsmanager:describeSecret` API。

   1. 等待 `RotationSucceeded`或 `RotationFailed` CloudTrail 事件。

1. 輪換成功後，請還原叢集容量。

   1. 使用 UpdateComputeNodeGroup API 將節點群組重設為所需的最小/最大容量。

   1. 對於 AWS PCS 受管登入節點：不需要其他動作。

   1. 對於 BYO 登入節點：

      1. 連線至登入節點。

      1. `/etc/slurm/slurm.key` 使用 Secrets Manager 的新秘密進行更新。

      1. 重新啟動 Slurm Auth 和 Cred Kiosk 協助程式 （已封裝）。

# AWS PCS 中叢集秘密輪換的常見問題
<a name="cluster-secret-rotation-faq"></a>

尋找 AWS PCS 中叢集秘密輪換的常見問題解答。

**什麼是叢集秘密？**  
叢集秘密是一種安全登入資料，可啟用 Slurm 控制器和 AWS PCS 運算節點之間的安全通訊。它也可以做為 Slurm REST API 身分驗證的 JSON Web Token (JWT) 金鑰。

**叢集秘密和 JWT 金鑰之間的差異是什麼？**  
在 AWS PCS 中，叢集秘密和 JWT 金鑰是提供不同用途的相同資源。叢集秘密會驗證 Slurm 內部通訊，而 JWT 金鑰會簽署字符以進行 REST API 身分驗證。輪換時，兩個層面都會同時受到影響。

**輪換需要多長時間？**  
輪換程序通常需要幾分鐘的時間。您的叢集會保持 ACTIVE 狀態，並在輪換期間繼續正常計費。

**我可以排程自動輪換嗎？**  
您可以在 Secrets Manager 中啟用排程輪換。不過，初始版本需要在每次輪換之前手動準備 （將節點群組擴展至 0)。

**我現有的 JWT 權杖在輪換後仍可運作嗎？**  
否，現有的 JWT 權杖在輪換後會變成無效。為 REST API 用戶端發行新權杖。

**哪裡可以找到我的叢集秘密？**  
您可以在 Secrets Manager 主控台或透過 AWS PCS 主控台找到叢集秘密。如需詳細說明，請參閱 [使用 AWS Secrets Manager 尋找叢集秘密](working-with_clusters_secrets_find_secrets-manager.md)和 [使用 AWS PCS 尋找叢集秘密](working-with_clusters_secrets_find_pcs.md)。

**為什麼輪換需要將節點群組擴展至 0？**  
輪換不需要執行中的執行個體，以確保秘密更新程序期間的叢集穩定性。這可防止舊秘密和新秘密之間的身分驗證衝突。

**此功能支援哪些合規要求？**  
此功能可讓 AWS PCS 符合產業合規標準，包括 HIPAA 和 FedRAMP，其要求定期輪換登入資料，作為其安全控制的一部分。

# 對 AWS PCS 中的叢集秘密輪換進行故障診斷
<a name="cluster-secret-rotation-troubleshooting"></a>

如果環境未正確準備，叢集秘密輪換會失敗。最常見的原因是叢集中的作用中執行個體。若要防止失敗：

1. 將所有節點群組設定為 0 容量。

1. 等待節點停止。

1. 確認您的叢集未處於這些狀態：`CREATE_FAILED`、`DELETE_FAILED`、`SUSPENDING`、 `RESUMING`或 `SUSPENDED`。

如果輪換失敗：
+ 隨即出現 RotationFailed CloudTrail 事件
+ 叢集秘密保持不變
+ 如需詳細資訊，請檢查 CloudTrail 中的 RotationFailed 事件
+ 完成所有準備步驟以成功輪換