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

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

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

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

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

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

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

注意

如果您在 Amazon 上 AWS Secrets Manager 使用 QuickSight,则需要支付访问和维护费用,如AWS 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. 在 “ AWS 资源QuickSight 访问权限” 中选择 “管理

    管理安全和权限。
  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权限。有关更多信息,请参阅AWS Secrets Manager 用户指南》中的KMS密钥权限

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

使用秘密凭据创建或更新数据源 QuickSight API

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

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

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

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

密钥的内容

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

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

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

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

修改密钥

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