使用 AWS Secrets Manager 秘密而不是 Amazon 中的數據庫憑據 QuickSight - Amazon QuickSight

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

使用 AWS Secrets Manager 秘密而不是 Amazon 中的數據庫憑據 QuickSight

   目標對象:Amazon QuickSight 管理員和 Amazon QuickSight 開發人員 

AWS Secrets Manager 是一種秘密儲存體服務,可用來保護資料庫認證、API金鑰和其他秘密資訊。使用金鑰有助於確保不讓某人研究您的程式碼而盜用密碼,因為機密並不存放於程式碼中。如需概觀,請參閱 AWS Secrets Manager 用戶指南

Amazon QuickSight 管理員可以授與他們在秘密管理員中建立的機密的 QuickSight 唯讀存取權。使用建立和編輯資料來源時,可以使用這些密碼來取代資料庫認證 QuickSight API。

QuickSight 支援使用具有支援認證配對驗證之資料來源類型的密碼。Jira 和目前 ServiceNow 不受支援。

注意

如果您使用 AWS Secrets Manager 使用 Amazon 時 QuickSight,您需支付存取和維護費用,如 AWS Secrets Manager 定價頁面。在您的帳單中,費用會在 Secrets Manager 之下逐項列出,而不是在下方 QuickSight列出。

請使用以下各節中所述的下列程序,將 Secrets Manager 與 Amazon 整合 QuickSight。

授與密碼管理員和所選密碼的 QuickSight 存取權

如果您是管理員並且在 Secret Manager 中擁有密碼,則可以授與 Amazon 對所選密碼的 QuickSight 唯讀存取權限。

授與密碼管理員和所選密碼的 QuickSight 存取權
  1. 在中 QuickSight,選擇右上角的使用者圖示,然後選擇 [管理] QuickSight。

    QuickSight 「管理」選單。
  2. 選擇左側的安全和許可

  3. QuickSight 訪問中選擇「管理」 AWS 資源

    管理安全和許可。
  4. [允許存取和自動探索這些資源] 中,選擇 AWS Secrets Manager選取秘密

    AWS Secrets Manager 秘密頁面打開。

  5. 選取您要授與 QuickSight 唯讀存取權的密碼。

    系統會自動顯示您 QuickSight 註冊區域中的秘密。若要選擇您所在地區以外的機密,請在其他中選擇機密 AWS 區域,然後輸入 Amazon 資源名稱(ARNs)這些秘密。

  6. 完成時請選擇 Finish (完成)

    QuickSight 會aws-quicksight-secretsmanager-role-v0在您的帳戶中建立呼叫的IAM角色。其會授予帳戶中的使用者對指定密碼的唯讀存取權,看起來類似以下內容:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region:accountId:secret:secret_name" ] } ] }

    當使用 QuickSight 者從使用具有密碼的資料來源使用的儀表板建立分析或檢視儀表板時, QuickSight 會擔任此 Secrets Manager IAM 角色。如需秘密權限原則的詳細資訊,請參閱的驗證和存取控制 AWS Secrets Manager 中的 AWS Secrets Manager 用戶指南

    QuickSight IAM角色中指定的密碼可能具有拒絕存取的其他資源策略。如需詳細資訊,請參閱將權限原則附加至 AWS Secrets Manager 用戶指南

    如果您使用 AWS 受管 AWS KMS 密鑰來加密您的密鑰, QuickSight不需要在 Secrets Manager 中設置任何其他權限。

    如果您使用客戶管理的金鑰來加密密鑰,請確保該 QuickSightIAM角色aws-quicksight-secretsmanager-role-v0具有kms:Decrypt權限。如需詳細資訊,請參閱 KMS AWS Secrets Manager 用戶指南

    如需有關中使用之金鑰類型的詳細資訊 AWS 金鑰管理服務,請參閱客戶金鑰和 AWS 按鍵AWS 金鑰管理服務指南

使用秘密認證建立或更新資料來源 QuickSight API

在管理 QuickSight 員授與 Secrets Manager 的 QuickSight 唯讀存取權之後,您可以API使用系統管理員選取為認證的密碼,在中建立和更新資料來源。

以下是在中建立資料來源的範例API呼叫 QuickSight。此範例使用create-data-sourceAPI作業。您也可以使用 update-data-source 操作。如需詳細資訊,請參閱 Amazon QuickSight API 參考資料UpdateDataSource中的CreateDataSource和。

以下API呼叫範例中的權限中指定的使用者可以刪除、檢視和編輯中指定 My 資料來源的SQL資料來源 QuickSight。他們也可以檢視和更新資料來源許可。密碼會用作資料來源的認證,而不ARN是使用使用 QuickSight 者名稱和密碼。

aws quicksight create-data-source --aws-account-id AWSACCOUNTID \ --data-source-id DATASOURCEID \ --name NAME \ --type MYSQL \ --permissions '[{"Principal": "arn:aws:quicksight:region:accountID:user/namespace/username", "Actions": ["quicksight:DeleteDataSource", "quicksight:DescribeDataSource", "quicksight:DescribeDataSourcePermissions", "quicksight:PassDataSource", "quicksight:UpdateDataSource", "quicksight:UpdateDataSourcePermissions"]}]' \ --data-source-parameters='{"MySQLParameters":{"Database": "database", "Host":"hostURL", "Port":"port"}}' \ --credentials='{"SecretArn":"arn:aws:secretsmanager:region:accountID:secret:secretname"}' \ --region us-west-2

在此呼叫中,會根據API呼叫者的原則 (而不是IAM服務角色的IAM原則) QuickSight 授權密碼的secretsmanager:GetSecretValue存取權。IAM服務角色作用於帳戶層級,並在使用者檢視分析或儀表板時使用。當使用者建立或更新資料來源時,它無法用於授權機密存取。

當使用者在 QuickSight UI 中編輯資料來源時,使用者可以檢視使用ARN的資料來源的密碼 AWS Secrets Manager 作為憑證類型。但是,他們無法編輯機密,也無法選取其他機密。如果使用者需要變更 (例如資料庫伺服器或連接埠),使用者必須先選擇認證配對,然後輸入其 QuickSight 帳戶使用者名稱和密碼。

在 UI 中變更資料來源時,會自動從資料來源中移除機密。若要將密碼還原至資料來源,請使用此update-data-sourceAPI作業。

機密中有什麼

QuickSight 需要以下JSON格式才能存取您的密碼:

{ "username": "username", "password": "password" }

usernamepassword欄位是存取密碼的 QuickSight必要欄位。所有其他欄位都是選擇性的,且會被忽略 QuickSight。

JSON格式可能會根據數據庫的類型而有所不同。如需詳細資訊,請參閱JSON結構 AWS Secrets Manager中的資料庫認證密碼 AWS Secrets Manager 用戶指南

修改機密

若要修改機密,請使用 Secrets Manager。在您變更密碼之後,下次 QuickSight 要求存取密碼時,更新就會變成可用。