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

重要:Amazon QuickSight 分析ワークスペースを再設計しました。コンソールの新しい外観を反映していないスクリーンショットや手順のテキストが表示される場合があります。 QuickSight 現在、スクリーンショットと手順のテキストを更新しています。

機能または項目を検索するには、クイック検索バーを使用します。

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

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

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

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

    AWS Key Management Service で使用される鍵の種類の詳細については、『鍵管理サービスガイド』のAWS 「AWS 顧客鍵と鍵」を参照してください。

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

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

以下は、 QuickSightでデータソースを作成する API 呼び出しの例です。この例は、create-data-source API オペレーションを使用します。また、update-data-source オペレーションを使用することもできます。詳細については、Amazon QuickSight API リファレンスの「」CreateDataSourceUpdateDataSource「」を参照してください。

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

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

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

シークレットの内容

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

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

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

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

シークレットの変更

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