Amazon でのデータベース認証情報の代わりに AWS Secrets Manager シークレットを使用する QuickSight - Amazon QuickSight

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon でのデータベース認証情報の代わりに AWS Secrets Manager シークレットを使用する QuickSight

   対象者: Amazon QuickSight 管理者と Amazon QuickSight デベロッパー 

AWS Secrets Manager は、データベースの認証情報、APIキー、その他の機密情報を保護するために使用できるシークレットストレージサービスです。シークレットはコードに保存されていないため、キーの使用はお客様のコードを調べている誰かがシークレットを漏らさないようにするのに役立ちます。この概要については、「AWS Secrets Manager ユーザーガイド」を参照してください

Amazon QuickSight 管理者は、Secrets Manager QuickSight で作成したシークレットへの読み取り専用アクセスを許可できます。これらのシークレットは、 を使用してデータソースを作成および編集するときに、データベース認証情報の代わりに使用できます QuickSight API。

QuickSight は、認証情報ペア認証をサポートするデータソースタイプでのシークレットの使用をサポートします。Jira と ServiceNow は現在サポートされていません。

注記

Amazon AWS Secrets Manager で を使用する場合 QuickSight、AWS Secrets Manager 料金表ページ「」の説明に従って、アクセスとメンテナンスの料金が請求されます。請求明細書では、コストは Secrets Manager で項目別され、 では項目別されません QuickSight。

Secrets Manager を Amazon と統合するには、以下のセクションで説明する次の手順を使用します QuickSight。

Secrets Manager および選択したシークレット QuickSight へのアクセスの許可

管理者で Secrets Manager にシークレットがある場合は、選択したシークレットへの QuickSight 読み取り専用アクセスを Amazon に付与できます。

Secrets Manager と選択したシークレット QuickSight へのアクセスを許可するには
  1. で QuickSight、右上のユーザーアイコンを選択し、 の管理を選択します QuickSight

    QuickSight メニューを管理します。
  2. 左側の [Security & permissions] (セキュリティとアクセス権限) を選択します。

  3. リソース へのアクセスで管理を選択します。 QuickSight AWS

    セキュリティとアクセス権限を管理します。
  4. [Allow access and autodiscovery for these resources] (これらのリソースへのアクセスと自動検出を許可) で AWS Secrets Manager[Select secrets] (シークレットを選択) を選択します。

    [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 ユーザーがシークレットでデータソースを使用するダッシュボードから分析を作成または表示すると、 はこの Secrets Manager IAMロール QuickSight を引き受けます。シークレットのアクセス許可ポリシーの詳細については、「AWS Secrets Manager ユーザーガイド」の「 AWS Secrets Managerの認証とアクセスコントロール」を参照してください。

    ロールで QuickSight IAM指定されたシークレットには、アクセスを拒否する追加のリソースポリシーがある場合があります。詳細については、「AWS Secrets Manager ユーザーガイド」の「アクセス許可ポリシーをシークレットにアタッチする」を参照してください。

    AWS マネージド AWS KMS キーを使用してシークレットを暗号化する場合、 QuickSight は Secrets Manager で追加のアクセス許可を設定する必要はありません。

    カスタマーマネージドキーを使用してシークレットを暗号化する場合は、 IAM ロールに QuickSight アクセスkms:Decrypt許可aws-quicksight-secretsmanager-role-v0があることを確認してください。詳細については、「 AWS Secrets Manager ユーザーガイド」の「 KMSキーのアクセス許可」を参照してください。

    Key Management Service で使用されるキーのタイプの詳細については、 AWS 「 Key Management Service ガイド」の「カスタマー AWS キーとキー」を参照してください。 AWS

を使用したシークレット認証情報を使用したデータソースの作成または更新 QuickSight API

QuickSight 管理者が Secrets Manager QuickSight への読み取り専用アクセスを許可したら、管理者が認証情報として選択したシークレットAPIを使用して、 でデータソースを作成および更新できます。

にデータソースを作成するためのAPI呼び出しの例を次に示します QuickSight。この例では、 create-data-sourceAPIオペレーションを使用します。また、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

この呼び出しでは、 は、IAMサービスロールのIAMポリシーではなく、API呼び出し元のポリシーに基づいてシークレットsecretsmanager:GetSecretValueへのアクセス QuickSight を承認します。IAM サービスロールはアカウントレベルで動作し、ユーザーが分析またはダッシュボードを表示するときに使用されます。ユーザーがデータソースを作成または更新するときのシークレットへのアクセスの許可には使用できません。

QuickSight UI でデータソースを編集すると、ユーザーは を認証情報タイプ AWS Secrets Manager として使用するARNデータソースのシークレットを表示できます。シークレットを編集したり、別のシークレットを選択したりすることはできません。データベースサーバーやポートなどに変更を加える必要がある場合、ユーザーはまず認証情報ペアを選択し、 QuickSight アカウントのユーザー名とパスワードを入力する必要があります。

シークレットは、UI でデータソースが変更されると、データソースから自動的に削除されます。シークレットをデータソースに復元するには、 update-data-sourceAPIオペレーションを使用します。

シークレットの内容

QuickSight では、シークレットにアクセスするには次のJSON形式が必要です。

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

がシークレットにアクセスするには、 username QuickSight および passwordフィールドが必要です。他のすべてのフィールドはオプションであり、 では無視されます QuickSight。

JSON 形式はデータベースのタイプによって異なる場合があります。詳細については、「 AWS Secrets Manager ユーザーガイドJSON」の AWS Secrets Manager 「データベース認証情報シークレットの構造」を参照してください。

シークレットの変更

シークレットを変更するには、Secrets Manager を使用します。シークレットに変更を加えると、次にシークレットへのアクセスを QuickSight リクエストしたときに更新が利用可能になります。