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

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

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

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