本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 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 會為您輪換秘密。
建立秘密並開啟輪換 (主控台)
前往以下位置開啟機密管理員控制台:https://console.aws.amazon.com/secretsmanager/
。 -
選擇 Store a new secret (存放新機密)。
-
在 Choose secret type (選擇秘密類型) 頁面上,執行下列動作:
-
針對機密類型,選擇 Salesforce 用戶端機密受管外部機密類型 (SalesforceClientSecret)。
-
輸入 Salesforce 用戶端秘密的秘密值欄位:取用者金鑰、取用者秘密、基本 URI、應用程式 ID 和取用者 ID。如需每個欄位的說明,請參閱 Salesforce 用戶端秘密。
-
如需 Encryption key (加密金鑰),請選擇 aws/secretsmanager 使用用於機密管理員的 AWS 受管金鑰 。使用此金鑰無需任何成本。您也可以使用自己的客戶受管金鑰。如需有關使用客戶受管金鑰的成本的資訊,請參閱 定價。
-
選擇下一步。
-
-
在設定秘密頁面上,輸入描述性的秘密名稱和描述,然後選擇下一步。
-
在設定輪換頁面上,執行下列動作。對於受管外部秘密,在秘密建立期間預設會啟用輪換。
-
確認已開啟自動輪換。
-
在輪換中繼資料下,針對 API 版本 (
apiVersion),輸入 Salesforce 組織的 API 版本。此欄位為必填。其格式必須為v,其中XX.XX為數字字元,且必須至少為v65.0。如果您希望 Secrets Manager 使用另一組管理登入資料輪換秘密,也請提供管理員秘密 ARN。如需每個中繼資料欄位的說明,請參閱 Salesforce 用戶端秘密。 -
在秘密輪換的服務許可中,選擇建立新角色,以自動建立具有 Secrets Manager 輪換秘密所需許可的 IAM 角色。根據預設,許可範圍限定為建立秘密的 AWS 區域中的整合合作夥伴。如需詳細資訊,請參閱安全與許可。
-
在輪換排程下,以 UTC 時區輸入您的排程,例如每 30 天自動輪換一次。
-
選擇下一步。
-
-
在 Review (檢閱) 頁面上,檢閱機密詳細資訊,然後選擇 Store (存放)。
如需設定受管外部秘密輪換的更多方式,包括 AWS AWS CLI,請參閱 輪換 Secrets Manager 受管外部秘密。
步驟 3:測試輪換的登入資料
最後一個步驟是透過擷取秘密值並交換 Salesforce 存取字符的登入資料,來確認輪換的登入資料是否正常運作。
擷取秘密值 (主控台)
前往以下位置開啟機密管理員控制台:https://console.aws.amazon.com/secretsmanager/
。 -
在 Secrets (機密) 頁面中,選擇機密。
-
在 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 輪換角色。刪除秘密也會停止自動輪換。
刪除秘密 (主控台)
前往以下位置開啟機密管理員控制台:https://console.aws.amazon.com/secretsmanager/
。 -
在 Secrets (機密) 頁面中,選擇機密。
-
在 Secrets details (秘密詳細資訊) 區段,選擇 Actions (動作),然後選擇 Delete description (刪除描述)。
-
在停用秘密和排程刪除對話方塊中,輸入等待期間,然後選擇排程刪除。Secrets Manager 會讓秘密立即無法存取,並排定在復原時段之後刪除。如需詳細資訊,請參閱刪除 AWS Secrets Manager 秘密。
刪除輪換角色 (主控台)
-
在 https://https://console.aws.amazon.com/iam/
開啟 IAM 主控台,然後選擇角色。 -
尋找 Secrets Manager 為輪換建立的角色,選取該角色,然後選擇刪除。如需詳細資訊,請參閱 IAM 使用者指南中的刪除角色或執行個體描述檔。
後續步驟
-
若要進一步了解受管外部秘密以及 Secrets Manager 與 整合的合作夥伴,請參閱 使用 AWS Secrets Manager 受管外部秘密來管理第三方秘密。
-
若要檢閱 Salesforce 所需的秘密值和輪換中繼資料欄位,請參閱 Salesforce 用戶端秘密。
-
如需設定受管外部秘密輪換的更多方式,請參閱 輪換受管外部秘密。
-
您可以透過快取機密來提高效能並降低成本。如需詳細資訊,請參閱從 取得秘密 AWS Secrets Manager。
-
若要了解使用 Secrets Manager 的成本,請參閱 定價。