QuickSight API を使用したシークレット認証情報でのデータソースの作成または更新
QuickSight 管理者が Secrets Manager への読み取り専用アクセス権を QuickSight に付与したら、管理者は認証情報として選択したシークレットを使用して、API でデータソースの作成と更新を実行できます。
以下は、QuickSight でデータソースを作成するための API コールの例です。この例は、create-data-source
API オペレーションを使用します。また、update-data-source
オペレーションを使用することもできます。詳細については、「Amazon QuickSight API リファレンス」の「CreateDataSource」と「UpdateDataSource」を参照してください。
以下の API コール例のアクセス許可で指定されたユーザーは、QuickSight で指定された MySQL データソースに対してデータソースの削除、表示、および編集を実行できます。また、データソースのアクセス許可の表示と更新を実行することも可能です。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
この API コールでは、QuickSight が IAM サービスロールのポリシーではなく、API 呼び出し元の IAM ポリシーに基づいてシークレットへの secretsmanager:GetSecretValue
アクセスを許可します。IAM サービスロールはアカウントレベルで機能し、ユーザーが分析やダッシュボードを表示するときに使用されます。ユーザーがデータソースを作成または更新するときのシークレットへのアクセスの許可には使用できません。
QuickSight UI でデータソースを編集すると、ユーザーは AWS Secrets Manager が認証情報タイプとして使用されているデータソースのシークレット ARN を表示できます。シークレットを編集したり、別のシークレットを選択したりすることはできません。データベースサーバーやポートなどを変更する必要がある場合、ユーザーはまず [認証情報ペア] を選択し、QuickSight アカウントのユーザー名とパスワードを入力する必要があります。
シークレットは、UI でデータソースが変更されると、データソースから自動的に削除されます。シークレットをデータソースに復元するには、update-data-source
API オペレーションを使用します。