翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 を Amazon と統合するには、以下のセクションで説明する次の手順を使用します QuickSight。
Secrets Manager および選択したシークレット QuickSight へのアクセスの許可
管理者で Secrets Manager にシークレットがある場合は、選択したシークレットへの QuickSight 読み取り専用アクセスを Amazon に付与できます。
Secrets Manager と選択したシークレット QuickSight へのアクセスを許可するには
-
で QuickSight、右上のユーザーアイコンを選択し、 の管理を選択します QuickSight。
-
左側の [Security & permissions] (セキュリティとアクセス権限) を選択します。
-
リソース へのアクセスで管理を選択します。 QuickSight AWS
-
[Allow access and autodiscovery for these resources] (これらのリソースへのアクセスと自動検出を許可) で AWS Secrets Manager、[Select secrets] (シークレットを選択) を選択します。
[AWS Secrets Manager シークレット] ページが開きます。
-
QuickSight 読み取り専用アクセスを許可するシークレットを選択します。
QuickSight サインアップリージョンのシークレットが自動的に表示されます。ホームリージョン外のシークレットを選択するには、他の AWS リージョンのシークレット を選択し、それらのシークレットの Amazon リソースネーム (ARNs) を入力します。
-
入力後、[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-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-idDATASOURCEID
\ --nameNAME
\ --typeMYSQL
\ --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
"}' \ --regionus-west-2
この呼び出しでは、 は、IAMサービスロールのIAMポリシーではなく、API呼び出し元のポリシーに基づいてシークレットsecretsmanager:GetSecretValue
へのアクセス QuickSight を承認します。IAM サービスロールはアカウントレベルで動作し、ユーザーが分析またはダッシュボードを表示するときに使用されます。ユーザーがデータソースを作成または更新するときのシークレットへのアクセスの許可には使用できません。
QuickSight UI でデータソースを編集すると、ユーザーは を認証情報タイプ AWS Secrets Manager として使用するARNデータソースのシークレットを表示できます。シークレットを編集したり、別のシークレットを選択したりすることはできません。データベースサーバーやポートなどに変更を加える必要がある場合、ユーザーはまず認証情報ペアを選択し、 QuickSight アカウントのユーザー名とパスワードを入力する必要があります。
シークレットは、UI でデータソースが変更されると、データソースから自動的に削除されます。シークレットをデータソースに復元するには、 update-data-source
APIオペレーションを使用します。
シークレットの内容
QuickSight では、シークレットにアクセスするには次のJSON形式が必要です。
{ "username": "
username
", "password": "password
" }
がシークレットにアクセスするには、 username
QuickSight および password
フィールドが必要です。他のすべてのフィールドはオプションであり、 では無視されます QuickSight。
JSON 形式はデータベースのタイプによって異なる場合があります。詳細については、「 AWS Secrets Manager ユーザーガイドJSON」の AWS Secrets Manager 「データベース認証情報シークレットの構造」を参照してください。
シークレットの変更
シークレットを変更するには、Secrets Manager を使用します。シークレットに変更を加えると、次にシークレットへのアクセスを QuickSight リクエストしたときに更新が利用可能になります。