當您的應用需要訪問RDS資料庫時,您可以將RDS帳號口令儲存在KMS的憑據中(即RDS憑據),業務應用通過整合阿里雲SDK、KMS執行個體SDK或憑據SDK向KMS動態擷取帳號口令,您還可以為憑據配置輪轉,以減少帳號口令的泄露風險。本文介紹如何管理及使用RDS憑據。
功能介紹
使用RDS憑據,應用程式將無需配置待用資料庫帳號口令。管理員在KMS建立RDS憑據,應用程式調用GetSecretValue介面擷取RDS資料庫帳號和口令資訊,用於訪問RDS資料庫。
您在KMS託管RDS帳號口令後,請勿在ApsaraDB RDS修改或刪除帳號口令,以避免您的業務失敗。
RDS憑據輪轉
KMS為您轉輪RDS憑據時,會重設對應RDS帳號的密碼(口令),資料庫帳號名稱不變。正常情況下,RDS憑據輪轉即時完成。如果輪轉超過2分鐘沒有完成,請檢查RDS執行個體狀態及RDS帳號是否正常。
RDS憑據輪轉時請勿刪除憑據關聯的RDS執行個體和RDS帳號,避免輪轉失敗。
在KMS託管RDS憑據時,支援單帳號託管和雙帳號託管,其輪轉策略不同:
單帳號
輪轉即為帳號產生一個新的口令,輪轉時在口令切換的瞬間,憑據的目前的版本可能暫時無法使用。因此建議您做好重試策略。
多帳號
假設建立憑據時您有一個使用者的RDS帳號口令。第一次輪轉時,KMS會調用RDS的API建立第二個使用者的帳號口令。第二次輪轉時,會修改第一個使用者的口令,以後每次輪轉憑據時,KMS會交替修改這兩個使用者的口令。具體如下圖所示。
注意事項
支援的RDS資料庫為:RDS MySQL、RDS MariaDB、RDS SQL Server(2017叢集版除外)和RDS PostgreSQL。
請勿將RDS資料庫的帳號口令託管到多個RDS憑據中。因為RDS憑據輪轉會更新口令,如果其中一個RDS憑據輪轉,則使用其他RDS憑據中的憑據值會無法成功登入該RDS資料庫。
前提條件
已購買並啟用KMS執行個體。具體操作,請參見購買和啟用KMS執行個體。
已在KMS執行個體中建立用於加密憑據的對稱金鑰。具體操作,請參見建立密鑰。
已完成阿里雲RDS執行個體建立。具體操作,請參見第一步:快捷建立RDS MySQL執行個體與設定資料庫。
如果您使用RAM使用者(子帳號)或RAM角色管理RDS憑據,請確保阿里雲帳號(主帳號)已將系統策略AliyunKMSSecretAdminAccess授予RAM使用者或RAM角色。具體操作,請參見為RAM使用者授權或為RAM角色授權。
步驟一:建立RDS憑據
建立憑據時可以設定憑據全自動的定期輪轉,從而降低憑據泄露的安全風險。
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
單擊数据库凭据頁簽,選擇实例ID後,單擊,完成各項配置後單擊確定。
說明RDS憑據不支援大量建立。
建立RDS憑據時,系統會自動建立服務關聯角色AliyunServiceRoleForKMSSecretsManagerForRDS,並為其授權權限原則AliyunServiceRolePolicyForKMSSecretsManagerForRDS。KMS使用該角色為您管理RDS憑據,完成RDS帳號口令的輪轉等任務。
您可以登入RAM控制台查看服務關聯角色和權限原則的詳細資料,具體操作,請參見查看RAM角色和查看權限原則基本資料。
配置項
說明
数据库类型
選擇RDS凭据。
凭据名称
自訂的憑據名稱。憑據名稱在當前地區內唯一。
RDS实例
選擇阿里雲帳號下已有的RDS執行個體。
账号托管
双账号托管(推薦):適用於程式化訪問資料庫情境。託管兩個相同許可權的帳號,保證口令重設切換的瞬間,程式訪問資料庫不被中斷。
單擊新建账号,配置帳號名、選擇資料庫並指定許可權。
說明一鍵建立和授權不會立即為您配置新的帳號,而是在您審核確認憑據資訊之後進行配置。
單擊导入已有账号,選擇使用者名稱、配置口令。
說明建議您將口令配置為建立RDS執行個體使用者帳號時對應的密碼。如果匯入的帳號和口令不匹配,您可以在憑據首次輪轉之後,擷取正確的帳號和口令。
单账号托管:適用於高許可權帳號或者人工營運帳號託管情境。口令重設切換的瞬間,憑據的目前的版本可能暫時無法使用。
單擊新建账号,配置帳號名、選擇帳號類型。
您可以選擇普通账号和高权限账号兩種帳號類型。當您選擇普通账号時,還需選擇資料庫並指定許可權。
單擊导入已有账号頁簽,選擇使用者名稱、配置口令。
加密主密钥
選擇用於加密憑據值的密鑰。
重要密鑰和憑據需要屬於同一個KMS執行個體,且密鑰必須為對稱金鑰。關於KMS支援哪些對稱金鑰,請參見密鑰管理類型和密鑰規格。
如果是RAM使用者、RAM角色,需要具備使用加密主要金鑰執行GenerateDataKey操作的許可權。
標籤
憑據的標籤,方便您對憑據進行分類管理。每個標籤由一個索引值對(Key:Value)組成,包含標籤鍵(Key)、標籤值(Value)。
說明標籤鍵和標籤值的格式:最多支援128個字元,可以包含英文大小寫字母、數字、正斜線(/)、反斜線(\)、底線(_)、短劃線(-)、半形句號(.)、加號(+)、等號(=)、半形冒號(:)、字元at(@)、空格。
標籤鍵不能以aliyun或acs:開頭。
每個憑據最多可以設定20個標籤索引值對。
自动轮转
選擇開啟或關閉憑據的周期性自動輪轉。
轮转周期
僅當开启自动轮转時需要設定。支援設定為6小時~365天。
表示輪轉的周期,設定後KMS將定期為您更新憑據值。
描述信息
憑據的描述資訊。
策略配置
憑據的策略配置。詳細介紹,請參見憑據策略概述。
您可以先選擇預設策略,建立憑據後根據業務需要再修改策略。
步驟二:應用程式整合RDS憑據
KMS提供了阿里雲SDK、憑據用戶端、憑據JDBC用戶端、KMS Agent、KMS執行個體SDK調用OpenAPI-GetSecretValue或KMS執行個體API-GetSecretValue(不推薦)介面擷取RDS憑據值。建議您按照如下優先順序順序選擇:
建議您做好錯誤重試機制提升業務穩定性。
KMS提供了多種認證方式,為了更高的安全性,推薦您優先使用ECS執行個體RAM角色或RAM角色。
存取點說明:
共用網關對應的存取點Endpoint:請參見存取點說明。
專屬網關對應的存取點Endpoint:
{執行個體ID}.cryptoservice.kms.aliyuncs.com。
優先順序 | 使用情境說明 | 支援的網關類型 |
優先順序1:憑據JDBC用戶端 |
說明 憑據JDBC用戶端封裝了商務邏輯、最佳實務和設計模式,可直接完成資料庫連接身份鑒別,並在建立資料庫連接後通過JDBC介面訪問資料庫。 |
|
優先順序2:憑據用戶端 | 應用開發語言需要為Java(Java 8及以上版本)、Go或者Python。 |
|
優先順序3:阿里雲SDK | 應用開發語言需要為Java(Java 6及以上版本)、PHP、Go、Python、.NET(僅C#)、C++、Node.js。 |
|
優先順序4:KMS Agent |
|
|
優先順序5:KMS執行個體SDK(不推薦) | 應用開發語言需要為Java(Java 8及以上版本)、PHP、Go、Python、.NET(僅C#)。 | 專屬網關 |
更多操作
輪轉RDS憑據
輪轉RDS憑據時,KMS將請求RDS重設相應資料庫帳號的密碼(ResetAccountPassword)。在輪轉RDS憑據前請確保您所有應用均從KMS擷取RDS憑據,以免造成相關業務應用不可用。
如果您在RDS中刪除了對應資料庫執行個體或帳號,KMS將無法正常對該RDS憑據完成輪轉。建議您在輪轉前進行一次“檢測帳號”,並在看到KMS提示檢驗成功後再進行輪轉。
您可以為憑據設定周期性自動輪轉,降低憑據泄露的安全風險。也可以在憑據泄露時,通過控制台立即輪轉功能快速輪轉憑據,阻斷入侵威脅。
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
單擊数据库凭据頁簽,選擇实例ID後,定位到要立即輪轉的憑據名稱,單擊操作列的详情。
在憑據詳情頁面下方的版本列表地區,單擊设置轮转。
定時自動輪轉:開啟後需要選擇輪轉周期,支援設定為6小時~365天。
立即輪轉:手動觸發立即輪轉。
檢測憑據值
KMS將檢測憑據保護的RDS資料庫帳號是否屬於您配置的RDS執行個體,檢測成功說明該憑據可以正常輪轉,否則您需要刪除後重新建立RDS憑據。
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
單擊数据库凭据頁簽,選擇实例ID後,定位到目標憑據,單擊操作列的详情。
在版本列表地區,單擊检测账号,驗證完成後,查看驗證結果。
刪除RDS憑據
刪除憑據前,請確認該憑據已不再使用,否則可能導致您的業務失敗。
您可以選擇計劃刪除憑據和立即刪除憑據兩種方式,刪除不需要的憑據。刪除RDS憑據僅刪除KMS的RDS憑據資訊,不會刪除RDS中的賬戶和口令。
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
單擊数据库凭据頁簽,選擇实例ID後,定位到要刪除的憑據名稱,單擊操作列的计划删除凭据。
在计划删除凭据對話方塊中,選擇憑據刪除方式,並單擊確定。
计划删除凭据:設定預刪除周期(7~30天),系統將在預刪除周期結束後刪除憑據。
立即删除凭据:系統將立即刪除憑據。
在預刪除周期內,您可以單擊目標憑據操作列的还原凭据,取消刪除操作。
為憑據配置標籤
憑據的標籤,方便您對憑據進行分類管理。每個標籤由一個索引值對(Key:Value)組成,包含標籤鍵(Key)、標籤值(Value)。
標籤鍵和標籤值的格式:最多支援128個字元,可以包含英文大小寫字母、數字、正斜線(/)、反斜線(\)、底線(_)、短劃線(-)、半形句號(.)、加號(+)、等號(=)、半形冒號(:)、字元at(@)、空格。
標籤鍵不能以aliyun或acs:開頭。
每個憑據最多可以設定20個標籤索引值對。
為單個憑據配置標籤
方式 | 操作 |
方式一:在憑據管理頁面配置標籤 |
|
方式二:在憑據詳情頁面配置標籤 |
|
為多個憑據大量設定標籤
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
單擊相應的憑據類型頁簽,選擇实例ID後,在憑據列表中勾選要操作的憑據。
增加標籤:在憑據列表的最下方,單擊增加標籤,輸入多個標籤鍵和標籤值後,單擊確認,然後在變更提示對話方塊中單擊關閉。
刪除標籤:在憑據列表的最下方,單擊刪除標籤,在批量解除綁定標籤對話方塊勾選要解除綁定的標籤,單擊解除綁定標籤,然後在變更提示對話方塊中單擊關閉。