在 Amazon 中使用 Amazon Secrets Manager 密钥代替数据库凭证 QuickSight - Amazon QuickSight
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon 中使用 Amazon Secrets Manager 密钥代替数据库凭证 QuickSight

   目标受众:亚马逊 QuickSight 管理员和亚马逊 QuickSight 开发者 

Amazon Secrets Manager 是一项密钥存储服务,可用于保护数据库凭据、API 密钥和其他机密信息。使用密钥有助于确保检查您代码的人不会泄露密钥,因为该密钥并不存储在代码中。有关概述,请参阅《Amazon Secrets Manager 用户指南》https://docs.amazonaws.cn/secretsmanager/latest/userguide

亚马逊 QuickSight 管理员可以授予他们在 Secrets Manager 中创建的密钥的 QuickSight 只读访问权限。使用 QuickSight API 创建和编辑数据源时,可以使用这些密钥代替数据库凭据。

QuickSight 支持将密钥与支持凭据对身份验证的数据源类型一起使用。目前 ServiceNow 不支持 Jira 和。

注意

如果您在 Amazon 上 Amazon Secrets Manager 使用 QuickSight,则需要支付访问和维护费用,如Amazon Secrets Manager 定价页面所述。在您的账单中,费用在 Secrets Manager 下逐项列出,而不是列在 Secrets Manager 下 QuickSight。

使用以下章节中描述的以下步骤将 Secrets Manager 与亚马逊集成 QuickSight。

授予 QuickSight 对 Secrets Manager 和所选密钥的访问权限

如果您是管理员并且在 Secrets Manager 中拥有密钥,则可以向亚马逊授予对所选密钥的 QuickSight 只读访问权限。

授予 QuickSight 对 Secrets Manager 和选定密钥的访问权限
  1. 在中 QuickSight,选择右上角的用户图标,然后选择管理 QuickSight

    管理 QuickSight 菜单。
  2. 选择左侧的安全和权限

  3. 在 “ Amazon 资源QuickSight 访问权限” 中选择 “管理

    管理安全和权限。
  4. 允许访问和自动发现这些资源中,依次选择 Amazon Secrets Manager选择密钥

    Amazon Secrets Manager 密钥页面打开。

  5. 选择要授予 QuickSight 只读访问权限的密钥。

    您的 QuickSight 注册区域中的密钥会自动显示。要选择您所在区域以外的密钥,请选择其他 Amazon 区域中的密钥,然后输入这些密钥的 Amazon 资源名称(ARN)。

  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 角色。有关密钥权限策略的更多信息,请参阅《Amazon Secrets Manager 用户指南》中的 Amazon Secrets Manager的身份验证和访问控制

    QuickSight IAM 角色中指定的密钥可能还有一个拒绝访问的额外资源策略。有关更多信息,请参阅《Amazon Secrets Manager 用户指南》中的将权限策略附加到密钥

    如果您使用 Amazon 托管密 Amazon KMS 钥来加密您的密钥,则 QuickSight无需在 Secrets Manager 中设置任何其他权限。

    如果您使用客户托管密钥来加密您的密钥,请确保 QuickSight IAM 角色aws-quicksight-secretsmanager-role-v0拥有kms:Decrypt权限。有关更多信息,请参阅《Amazon Secrets Manager 用户指南》中的 KMS 密钥的权限

    有关密钥管理服务中 Amazon 使用的密钥类型的更多信息,请参阅密钥管理服务指南中的Amazon 客户 Amazon 密钥和密钥

使用 QuickSight API 创建或更新带有秘密凭证的数据源

QuickSight 管理员授予对 Secrets Manager 的 QuickSight 只读访问权限后,您可以使用管理员选择作为凭据的密钥在 API 中创建和更新数据源。

以下是在中创建数据源的 API 调用示例 QuickSight。此示例使用 create-data-source API 操作。还可以使用 update-data-source 操作。有关更多信息,请参阅 Amazon QuickSight API 参考UpdateDataSource中的CreateDataSource和。

在以下 API 调用示例的权限中指定的用户可以删除、查看和编辑中指定 MySQL 数据源的数据源 QuickSight。他们还可以查看和更新数据来源的权限。不使用 QuickSight 用户名和密码,而是使用机密 ARN 作为数据源的凭据。

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 界面中编辑数据源时,用户可以查看 Amazon Secrets Manager 用作凭证类型的数据源的秘密 ARN。但是,他们无法编辑密钥,也无法选择其他密钥。如果需要进行更改,例如更改数据库服务器或端口,则用户首先需要选择凭据对并输入其 QuickSight 帐户用户名和密码。

在用户界面中更改数据来源时,密钥会自动从数据来源中删除。要将密钥恢复到数据来源,请使用 update-data-source API 操作。

密钥的内容

QuickSight 需要以下 JSON 格式才能访问您的密钥:

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

usernamepassword字段是访问密钥的 QuickSight必填字段。所有其他字段均为可选字段,将被忽略 QuickSight。

JSON 格式可能会因数据库类型而异。有关更多信息,请参阅《Amazon Secrets Manager 用户指南》中的 Amazon Secrets Manager 数据库凭据密钥的 JSON 结构

修改密钥

要修改密钥,您可以使用 Secrets Manager。对密钥进行更改后,下次 QuickSight 请求访问该密钥时,更新将变为可用。