AWS Quicksight本身不直接支持记住每个用户的控制/筛选设置。但是,您可以通过使用AWS Identity and Access Management (IAM) 和AWS Quicksight API来实现这一功能。
以下是一种可行的解决方案:
import boto3
quicksight_client = boto3.client('quicksight')
def create_user_template(user_id, template_name, analysis_id):
response = quicksight_client.create_template(
AwsAccountId='YOUR_AWS_ACCOUNT_ID',
TemplateId=f'{user_id}-{template_name}',
Name=f'{user_id}-{template_name}',
SourceEntity={
'SourceAnalysis': {
'Arn': f'arn:aws:quicksight:us-east-1:YOUR_AWS_ACCOUNT_ID:analysis/{analysis_id}'
}
},
Permissions=[
{
'Principal': 'arn:aws:iam::YOUR_AWS_ACCOUNT_ID:user/{user_id}',
'Actions': [
'quicksight:DescribeTemplate',
'quicksight:UpdateTemplate',
'quicksight:DeleteTemplate',
'quicksight:DescribeTemplatePermissions',
'quicksight:UpdateTemplatePermissions',
'quicksight:PassDataSource',
'quicksight:UpdateDashboardPermissions',
'quicksight:Query',
'quicksight:UpdateAnalysisPermissions',
'quicksight:DeleteAnalysis',
'quicksight:DescribeAnalysis',
'quicksight:UpdateAnalysis',
'quicksight:CreateDataSource',
'quicksight:UpdateDataSource',
'quicksight:DeleteDataSource',
'quicksight:DescribeDataSource',
'quicksight:DescribeDashboard',
'quicksight:UpdateDashboard',
'quicksight:DeleteDashboard',
'quicksight:CreateDashboard',
'quicksight:DescribeDataSet',
'quicksight:UpdateDataSet',
'quicksight:DeleteDataSet',
'quicksight:PassDataSet',
'quicksight:CreateAnalysis',
'quicksight:RestoreAnalysis',
'quicksight:DeleteDataSetPermissions',
'quicksight:DescribePermissions',
'quicksight:PassDataSourcePermissions',
'quicksight:PassDataSetPermissions',
'quicksight:PassTemplate',
'quicksight:UpdateTemplatePermissions',
'quicksight:UpdateAnalysisPermissions',
'quicksight:UpdateDashboardPermissions'
]
}
]
)
return response['TemplateId']
import boto3
quicksight_client = boto3.client('quicksight')
def apply_user_template(user_id, template_id):
response = quicksight_client.update_template_permissions(
AwsAccountId='YOUR_AWS_ACCOUNT_ID',
TemplateId=template_id,
GrantPermissions=[
{
'Principal': f'arn:aws:iam::YOUR_AWS_ACCOUNT_ID:user/{user_id}',
'Actions': [
'quicksight:UpdateTemplatePermissions',
'quicksight:DescribeTemplatePermissions'
],
'Principal': f'arn:aws:iam::YOUR_AWS_ACCOUNT_ID:user/{user_id}',
'Actions': [
'quicksight:UpdateTemplatePermissions',
'quicksight:DescribeTemplatePermissions'
]
}
]
)
return response
请注意,上述示例代码仅用于演示和说明目的。在实际实施时,请根据您的需求和安全要求进行适当的更改和配置。
此