View a markdown version of this page

建立 Salesforce 用戶端秘密 - AWS Secrets Manager

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

建立 Salesforce 用戶端秘密

在本教學課程中,您會建立 Salesforce 用戶端秘密,並將其存放在 AWS Secrets Manager 中做為受管外部秘密、開啟受管輪換,然後透過將輪換的登入資料交換為存取字符來測試輪換的登入資料。本教學課程約需 20-30 分鐘完成。

本教學課程使用可能會向您的 收取費用 AWS 的服務 AWS 帳戶,包括您存放在 Secrets Manager 中的秘密費用,以及如果您選擇使用密碼,則為客戶受管金鑰。如需詳細資訊,請參閱定價。

注意

本教學課程使用 SalesforceClientSecret 秘密類型做為範例。其他受管外部秘密類型遵循類似的流程。您可以使用整合合作夥伴定義的格式建立秘密,開啟受管輪換,然後使用輪換的登入資料。如需加入的合作夥伴清單及其所需的秘密格式,請參閱 整合合作夥伴。

開始本教學課程之前,請確定您有下列項目。

  • Salesforce 帳戶 (開發人員或其他),可讓您建立外部用戶端應用程式 (ECAs)。

  • 您的 的管理許可 AWS 帳戶。在生產設定中,最佳實務是針對不同的任務使用不同的角色。例如,管理組織中秘密的角色會建立秘密,而個別角色則會在執行時間使用秘密。對於教學步驟,我們建議您繼續使用相同的身分。如需如何在生產環境中設定許可的詳細資訊,請參閱 的身分驗證和存取控制 AWS Secrets Manager。

步驟 1:建立外部用戶端應用程式並啟用 OAuth

第一步是在 Salesforce 中建立外部用戶端應用程式 (ECA),並為 OAuth 設定它,以便 Secrets Manager 可以輪換用戶端秘密。如需完整的 Salesforce 程序,請參閱 Salesforce 文件中的使用外部用戶端應用程式設定授權。

當您設定 ECA 時,請務必設定下列項目:

  • 在組織層級,啟用允許透過 REST API 存取外部用戶端應用程式取用者秘密。此設定可讓 Secrets Manager 透過 Salesforce REST API 擷取和輪換取用者秘密。

  • 在 ECA 上,啟用 OAuth 範圍 透過 APIs(api)。

  • 在 ECA 上,啟用啟用用戶端登入資料流程。

  • 在 ECA 上,啟用啟用權杖交換流程,並要求權杖交換流程的秘密。

建立 ECA 之後,請在下一個步驟中收集您需要存放在秘密中的值:

  • ECA Manager OAuth 設定中的取用者金鑰 (用戶端 ID) 和取用者秘密 (用戶端秘密)。

  • 您的 Salesforce My Domain 基礎 URL,例如 https://MyDomainName.my.salesforce.com。

  • ECA 的應用程式 ID 和取用者 ID。這些對應至 Salesforce 文件中的 external_client_app_identifier和 consumer_id 欄位。若要了解如何擷取這些值,請參閱 Salesforce 文件中的階段 OAuth 登入資料。

如需秘密中每個必要欄位的說明,請參閱 Salesforce 用戶端秘密。

步驟 2:建立受管外部秘密並啟用輪換

接著,您將 Salesforce 用戶端秘密存放在 Secrets Manager 中,做為受管外部秘密,並開啟受管輪換。透過受管輪換,您不會建立或維護 Lambda 輪換函數。Secrets Manager 會為您輪換秘密。

建立秘密並開啟輪換 (主控台)
  1. 前往以下位置開啟機密管理員控制台:https://console.aws.amazon.com/secretsmanager/。

  2. 選擇 Store a new secret (存放新機密)。

  3. 在 Choose secret type (選擇秘密類型) 頁面上,執行下列動作:

    1. 針對機密類型,選擇 Salesforce 用戶端機密受管外部機密類型 (SalesforceClientSecret)。

    2. 輸入 Salesforce 用戶端秘密的秘密值欄位:取用者金鑰、取用者秘密、基本 URI、應用程式 ID 和取用者 ID。如需每個欄位的說明,請參閱 Salesforce 用戶端秘密。

    3. 如需 Encryption key (加密金鑰),請選擇 aws/secretsmanager 使用用於機密管理員的 AWS 受管金鑰 。使用此金鑰無需任何成本。您也可以使用自己的客戶受管金鑰。如需有關使用客戶受管金鑰的成本的資訊,請參閱 定價。

    4. 選擇下一步。

  4. 在設定秘密頁面上,輸入描述性的秘密名稱和描述,然後選擇下一步。

  5. 在設定輪換頁面上,執行下列動作。對於受管外部秘密,在秘密建立期間預設會啟用輪換。

    1. 確認已開啟自動輪換。

    2. 在輪換中繼資料下,針對 API 版本 (apiVersion),輸入 Salesforce 組織的 API 版本。此欄位為必填。其格式必須為 vXX.X,其中 X 為數字字元,且必須至少為 v65.0。如果您希望 Secrets Manager 使用另一組管理登入資料輪換秘密,也請提供管理員秘密 ARN。如需每個中繼資料欄位的說明,請參閱 Salesforce 用戶端秘密。

    3. 在秘密輪換的服務許可中,選擇建立新角色,以自動建立具有 Secrets Manager 輪換秘密所需許可的 IAM 角色。根據預設,許可範圍限定為建立秘密的 AWS 區域中的整合合作夥伴。如需詳細資訊,請參閱安全與許可。

    4. 在輪換排程下,以 UTC 時區輸入您的排程,例如每 30 天自動輪換一次。

    5. 選擇下一步。

  6. 在 Review (檢閱) 頁面上,檢閱機密詳細資訊,然後選擇 Store (存放)。

如需設定受管外部秘密輪換的更多方式,包括 AWS AWS CLI,請參閱 輪換 Secrets Manager 受管外部秘密。

步驟 3:測試輪換的登入資料

最後一個步驟是透過擷取秘密值並交換 Salesforce 存取字符的登入資料,來確認輪換的登入資料是否正常運作。

擷取秘密值 (主控台)
  1. 前往以下位置開啟機密管理員控制台:https://console.aws.amazon.com/secretsmanager/。

  2. 在 Secrets (機密) 頁面中,選擇機密。

  3. 在 Secret details (機密詳細資訊) 頁面,向下捲動並選擇 Retrieve secret value (擷取機密值)。請記下目前的 consumerKey和 consumerSecret值。

注意

確認 consumerKey和 consumerSecret值已從您最初存放的值實際變更。如果它們尚未變更,請等待幾分鐘,然後再次檢查。如果它們仍未變更,請檢查 AWS CloudTrail 是否有任何秘密RotationFailed事件,其中包括輪換失敗原因的詳細資訊。如需詳細資訊,請參閱我的受管外部秘密未輪換。

接著,使用擷取的登入資料向 Salesforce 請求存取字符。將 MyDomainName 取代為您的 Salesforce My Domain 名稱,並將 consumerKey 和 consumerSecret 取代為您擷取的值。

curl -X POST "https://MyDomainName.my.salesforce.com/services/oauth2/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials" \ -d "client_id=consumerKey" \ -d "client_secret=consumerSecret"

如果登入資料有效,Salesforce 會傳回包含 的 JSON 回應access_token。接收存取字符可確認輪換的登入資料是否正常運作。

在命令 shell 中輸入命令時,存在命令歷史記錄被存取或公用程式存取命令參數的風險。請參閱 降低使用 AWS CLI 存放 AWS Secrets Manager 秘密的風險。

步驟 4:清除資源

為了避免持續產生費用,請刪除您不再需要在本教學課程中建立的資源:Secrets Manager 建立的秘密和 IAM 輪換角色。刪除秘密也會停止自動輪換。

刪除秘密 (主控台)
  1. 前往以下位置開啟機密管理員控制台:https://console.aws.amazon.com/secretsmanager/。

  2. 在 Secrets (機密) 頁面中,選擇機密。

  3. 在 Secrets details (秘密詳細資訊) 區段,選擇 Actions (動作),然後選擇 Delete description (刪除描述)。

  4. 在停用秘密和排程刪除對話方塊中,輸入等待期間,然後選擇排程刪除。Secrets Manager 會讓秘密立即無法存取,並排定在復原時段之後刪除。如需詳細資訊,請參閱刪除 AWS Secrets Manager 秘密。

刪除輪換角色 (主控台)
  1. 在 https://https://console.aws.amazon.com/iam/ 開啟 IAM 主控台,然後選擇角色。

  2. 尋找 Secrets Manager 為輪換建立的角色,選取該角色,然後選擇刪除。如需詳細資訊,請參閱 IAM 使用者指南中的刪除角色或執行個體描述檔。

後續步驟