質問
- 【質問1】Secrets Manager が別リージョンにある場合、データソースのパスワードを Secrets Manager で管理することはできないでしょうか?
- 【質問2】設定箇所が足りていない、間違っている箇所があればご指摘いただけないでしょうか?
背景
データソースとして Secrets Manager でパスワード管理をしているバージニア北部リージョンの Redshift を、東京リージョンの QuickSight で可視化します。
パスワードをべた書きした状態では正常に接続し、QuickSight の分析で可視化できています。
パスワードをべた書きで作成したデータソースのパスワードを Secrets Manager で管理するように変更しようとすると、
An error occurred (InvalidParameterValueException) when calling the UpdateDataSource operation: The SecretArn arn:aws:secretsmanager:us-east-1:123456789012:secret:redshift!20241106-namespace-xxxxx must have the same partition and region as the DataSource.
というエラーで失敗します。
QuickSight の管理画面でバージニア北部リージョンのシークレットへのアクセス許可は設定しています。
実施していること
以下のドキュメント等を参照し検証しています。
- Amazon でのデータベース認証情報の代わりに AWS Secrets Manager シークレットを使用する QuickSight - Amazon QuickSight
- Secrets Manager および選択したシークレット QuickSight へのアクセスの許可 - Amazon QuickSight
- を使用してシークレット認証情報を使用してデータソースを作成または更新する QuickSight API - Amazon QuickSight
- データセット作成時の認証情報について - 日本語で質問 | Q&A - Amazon QuickSight Community
- QuickSight のデータソース接続構成に AWS Secrets Manager が使えるようなりました | DevelopersIO
update-data-source でデータソースを更新するため、CLI スケルトンで JSON ファイルを作成します。
▼実行結果
[cloudshell-user@ip-10-134-29-157 ~]$ aws quicksight update-data-source --generate-cli-skeleton > update-data-source-secrets.json
[cloudshell-user@ip-10-134-29-157 ~]$ cat update-data-source-secrets.json
{
"AwsAccountId": "",
"DataSourceId": "",
"Name": "",
"DataSourceParameters": {
"AmazonElasticsearchParameters": {
"Domain": ""
},
:
:
"RedshiftParameters": {
"Host": "",
"Port": 0,
"Database": "",
"ClusterId": "",
"IAMParameters": {
"RoleArn": "",
"DatabaseUser": "",
"DatabaseGroups": [
""
],
"AutoCreateDatabaseUser": true
},
"IdentityCenterConfiguration": {
"EnableIdentityPropagation": true
}
},
:
:
},
"Credentials": {
"CredentialPair": {
"Username": "",
"Password": "",
"AlternateDataSourceParameters": [
{
"AmazonElasticsearchParameters": {
"Domain": ""
},
:
:
"RedshiftParameters": {
"Host": "",
"Port": 0,
"Database": "",
"ClusterId": "",
"IAMParameters": {
"RoleArn": "",
"DatabaseUser": "",
"DatabaseGroups": [
""
],
"AutoCreateDatabaseUser": true
},
"IdentityCenterConfiguration": {
"EnableIdentityPropagation": true
}
},
:
:
"BigQueryParameters": {
"ProjectId": "",
"DataSetRegion": ""
}
}
]
},
"CopySourceArn": "",
"SecretArn": ""
},
"VpcConnectionProperties": {
"VpcConnectionArn": ""
},
"SslProperties": {
"DisableSsl": true
}
}
[cloudshell-user@ip-10-134-29-157 ~]$
データソースの情報を取得します。
▼実行結果
[cloudshell-user@ip-10-134-29-157 ~]$ aws quicksight list-data-sources \
> -- --aws-account-id 123456789012
{
"DataSources": [
{
:
:
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:datasource/92d8a982-3cfc-465d-b5ec-xxxxx",
"DataSourceId": "92d8a982-3cfc-465d-b5ec-xxxxx",
"Name": "Virginia-Redshift",
"Type": "REDSHIFT",
"Status": "CREATION_SUCCESSFUL",
"CreatedTime": "2024-11-06T14:52:52.431000+00:00",
"LastUpdatedTime": "2024-11-06T14:52:52.431000+00:00",
"DataSourceParameters": {
"RedshiftParameters": {
"Host": "20241106-workgroup.123456789012.us-east-1.redshift-serverless.amazonaws.com",
"Port": 5439,
"Database": "dev"
}
},
"VpcConnectionProperties": {
"VpcConnectionArn": "arn:aws:quicksight:ap-northeast-1:123456789012:vpcConnection/afb10c87-da05-40fd-812d-f55acae11ec2"
},
"SslProperties": {
"DisableSsl": false
}
},
{
:
:
}
],
"Status": 200,
"RequestId": "6c86fe4b-d881-43e7-8c67-01bf4ee77327"
}
[cloudshell-user@ip-10-134-29-157 ~]$
JSON ファイルを以下のように修正します。
{
"AwsAccountId": "123456789012",
"DataSourceId": "92d8a982-3cfc-465d-b5ec-xxxxx",
"Name": "Virginia-Redshift",
"DataSourceParameters": {
"RedshiftParameters": {
"Host": "20241106-workgroup.123456789012.us-east-1.redshift-serverless.amazonaws.com",
"Port": 5439,
"Database": "dev"
}
},
"Credentials": {
"SecretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:redshift!20241106-namespace-xxxxx"
},
"VpcConnectionProperties": {
"VpcConnectionArn": "arn:aws:quicksight:ap-northeast-1:123456789012:vpcConnection/afb10c87-da05-40fd-812d-f55acae11ec2"
},
"SslProperties": {
"DisableSsl": false
}
}
データソースを更新しようとすると、以下のエラーで失敗します。
▼実行結果
[cloudshell-user@ip-10-134-29-157 ~]$ aws quicksight update-data-source \
> --cli-input-json file://update-data-source-secrets.json
An error occurred (InvalidParameterValueException) when calling the UpdateDataSource operation: The SecretArn arn:aws:secretsmanager:us-east-1:123456789012:secret:redshift!20241106-namespace-xxxxx must have the same partition and region as the DataSource.
[cloudshell-user@ip-10-134-29-157 ~]$