> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 秘密金鑰管理

> 在 Game Manager 中建立、輪替、停用 PlayFab 開發人員秘密金鑰並設定其到期時間，以保護 Admin 和 Server API 呼叫，並授予暫時的遊戲存取權。

PlayFab 開發人員秘密金鑰可讓您的遊戲進行 PlayFab Admin 和 Server API 呼叫。秘密金鑰 (也稱為開發人員金鑰) 會與 PlayFab 遊戲相關聯。

使用 **Game Manager** 中的 **Secret Keys** 頁面，您可以建立、刪除、停用金鑰，並設定金鑰到期。這可讓您輪替遊戲的秘密金鑰 (過去很難做到這一點)。它也可讓您授予遊戲的暫時存取權。

<Note>
  絕對不要在傳送給客戶的用戶端組建中包含您的開發人員秘密金鑰。這樣做會讓您的遊戲遭到濫用。
</Note>

若要管理遊戲的秘密金鑰：

1. 登入 **Game Manager**。
2. 選取您的遊戲。
3. 在右上角選取齒輪圖示。
4. 選取 **Title settings**，然後選取 **Secret Keys** 索引標籤。

**Secret Keys** 頁面提供 **Delete** 金鑰的選項，並可檢視每個金鑰的 **Status**，以及其 **Name**、**Value** 和 **Expiration** 時間 (若有設定)。此表格可讓您稽核可用的金鑰。

您可以透過儀表板重新命名、啟用、停用現有金鑰或設定其到期時間。若要查看金鑰的選項，請選取該金鑰。每個遊戲一開始都有一個預設金鑰。

若要輪替金鑰：

1. 選取 **New Secret Key**。
2. 輸入金鑰的 **Name**，以及選用的到期日期。
3. 更新您的程式碼以使用新金鑰。
4. 停用舊金鑰。選取舊金鑰，然後在 **Edit Secret Key** 頁面上選取 **Disable** 核取方塊。
5. 選取 **SAVE SECRET KEY**。

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/live-service-management/gamemanager/tutorials/game-manager-settings-edit-secret-key.png?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=315ad34a88e817754d4aae20163f5bcb" alt="Game Manager - 設定 - 編輯秘密金鑰" width="1366" height="892" data-path="images/playfab/live-service-management/gamemanager/tutorials/game-manager-settings-edit-secret-key.png" />

<Info>
  如果您的舊金鑰已外洩，請輪替金鑰，讓您的遊戲回到安全狀態。
</Info>

此流程不會造成停機，而且在刪除舊金鑰之前，您可以安全地復原每個步驟。如果第一個步驟發生問題，您可以刪除新金鑰。此時應該沒有人在使用它。

在第二個步驟，兩個金鑰都處於作用中狀態，因此您可以安全地向前推進或復原您的程式碼。

在第三個步驟，您可以重新啟用金鑰，同時修正仍依賴該金鑰的任何項目。

程序完成後，您不需要刪除舊金鑰。如果刪除該金鑰，將無法復原。刪除是永久且無法撤銷的。

當您需要授予某人遊戲的暫時存取權時，將金鑰設定為到期會很有用。

例如，如果有承包商在開發您的遊戲，您可以提供他們只在您預期其所需期間內有效的金鑰。如果他們需要的存取時間超過原先預期的到期日期，您可以重設到期日期來延長秘密金鑰的有效期。

## IP 允許清單

遊戲秘密金鑰的 IP 允許清單是一項安全性功能，可確保遊戲秘密金鑰無法從您信任的 IP 以外的位置使用。每個秘密金鑰都可以有自己的 IPv4 或 IPv6 位址 (或 CIDR 範圍) 清單，只有清單中的位址可以使用它。

為遊戲秘密金鑰設定 IP 允許清單後，使用該金鑰進行的特殊權限呼叫 (Server 和 Admin API) 只會在來源 IP 符合清單中的項目時才被接受。來自任何其他 IP 的呼叫都會遭到拒絕，即使金鑰本身在其他方面有效亦然。對金鑰的每項變更 (包括允許清單的編輯) 都會記錄在現有的 PlayStream 秘密金鑰變更事件中。

**支援的格式：**

* 同時支援 IPv4 和 IPv6 位址 (例如 `203.0.113.7` 或 `2001:db8::1`)。
* 兩種位址系列都支援 CIDR 範圍 (例如 `203.0.113.0/24` 或 `2001:db8::/32`)。

**如何為遊戲秘密金鑰設定 IP 允許清單：**

1. 在 **Game Manager** 中，瀏覽至 **Title Settings** > **Secret Keys**。
2. 編輯 (或建立) 秘密金鑰。
3. 切換 **Enable IP allowlist**。
4. 新增您的輸出 IP 或 CIDR 範圍，每行一個 (例如 `203.0.113.7` 或 `2001:db8::/32`)。
5. 選取 **Save**。

<Info>
  儲存前請再次檢查清單。不正確的項目會封鎖所有不在清單上的 IP，這可能導致您的服務無法存取 Server 和 Admin API。
</Info>

## API 允許清單

API 允許清單會將遊戲秘密金鑰限制為只能使用一組特定的 PlayFab API。對允許清單以外之 API 的要求會傳回 HTTP 403 (`NotAuthorized`)。對金鑰的每項變更 (包括 API 允許清單的編輯) 都會記錄在現有的 PlayStream 秘密金鑰變更事件中。

沒有 API 允許清單的秘密金鑰仍不受限制。在您啟用並設定 API 允許清單之前，現有的秘密金鑰不受影響。

<Info>
  選取所有 API 會建立當時可用 API 的快照。這不是萬用字元，之後新增的 API 不會自動獲得允許。若要讓金鑰對目前和未來的 API 都不受限制，請不要啟用 API 允許清單。
</Info>

<Warning>
  允許 `GetEntityToken` 可能會提供比預期更廣泛的存取權。此 API 傳回的實體權杖不受遊戲秘密金鑰的 API 允許清單限制。
</Warning>

若要設定 API 允許清單：

1. 在 **Game Manager** 中，前往 **Title Settings** > **Secret Keys**。
2. 編輯或建立秘密金鑰。
3. 開啟 **Enable API allowlist**。
4. 使用 **Search APIs** 尋找並選取每個必要的 API，例如 `/Server/GetUserData`。
5. 選取 **Save**，然後確認變更。

API 允許清單的變更不會立即生效。它們會在現有的秘密金鑰快取到期時生效。若要撤銷金鑰的所有存取權，請停用金鑰，而不要依賴 API 允許清單的變更。

若要移除 API 限制：

1. 編輯秘密金鑰。
2. 關閉 **Enable API allowlist**。
3. 選取 **Save**，然後確認變更。

之後，該秘密金鑰對目前和未來的 API 都不受限制。


## Related topics

- [逐步解說：使用 PowerShell/API 部署組建](/zh-TW/services/playfab/multiplayer/servers/quickstart-for-multiplayer-servers-api-powershell.md)
- [使用 PowerShell/API 部署組建](/zh-TW/services/playfab/multiplayer/servers/deploy-using-powershell-api.md)
- [PlayFab 即時服務管理文件](/zh-TW/services/playfab/live-service-management/index.md)
- [加密登入](/zh-TW/services/playfab/identity/player-identity/encryption/encrypted-logins.md)
- [配置遊戲伺服器並連接 Visual Studio 偵錯工具](/zh-TW/services/playfab/multiplayer/servers/allocating-game-servers-and-configuring-vs-debugging-tools.md)
