Rit*_*mar 2 amazon-web-services amazon-quicksight
我在我的 AWS 账户中创建了一个模板,并一直在尝试更新模板权限以允许从另一个账户访问。我找不到任何有关哪些操作适用于 QuickSight 模板的相关文档。
任何人都可以分享对此的任何见解吗?我不知道如何从这里搬走。
小智 6
在更新模板权限以提供对模板的跨账户访问时,您需要在委托人中使用账户根的 IAM ARN 而不是单个用户。
请尝试使用下面的 CLI 和访问策略,并根据观察提出建议:
aws quicksight update-template-permissions --aws-account-id <aws account ID> --template-id <Template Id> --grant-permissions file://TemplatePermission.json --profile default
Run Code Online (Sandbox Code Playgroud)
Templatepermission.json 的内容如下:
[
{
"Principal": "arn:aws:iam::<aws account ID>:root",
"Actions": ["quicksight:UpdateTemplatePermissions","quicksight:DescribeTemplate"]
}
Run Code Online (Sandbox Code Playgroud)
与其他帐户共享模板后,您将能够使用以下步骤使用模板创建仪表板。
要使用账户 A 或 B 中的模板在账户 B 中创建仪表板,请使用 create-dashboard CLI。
aws quicksight create-dashboard --aws-account-id <Account ID> --dashboard-id <any ID> --name <any dashboard name> --source-entity file://DashboardFromTemplate.json
Run Code Online (Sandbox Code Playgroud)
DashboardFromTemplate.json 文件内容如下:
{
"SourceTemplate": {
"DataSetReferences": [
{
"DataSetPlaceholder": "placeholder",
"DataSetArn": "arn:aws:quicksight:us-east-1:<Account A ID>:dataset/<Dataset ID>"
}
],
"Arn": "arn:aws:quicksight:us-east-1:<Account ID>:template/<Template ID>"
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,“DataSetPlaceholder”值需要与用于创建模板的数据集占位符相匹配。这可以通过在创建模板的帐户中执行此操作来找到。
aws quicksight describe-template --aws-account-id <Account ID where the template is created> --template-id <Template ID>
Run Code Online (Sandbox Code Playgroud)