我想確保 Amazon Simple Storage Service (Amazon S3) 儲存貯體政策允許來自 Amazon Quick Suite 的存取。
簡短說明
如果您的 Amazon S3 儲存貯體使用拒絕政策,則該政策會覆寫您在 Quick Suite 主控台中指定的任何 S3 權限。若要允許 Quick Suite 存取 S3 儲存貯體,請在您的拒絕政策中將 Amazon Quick Sight 服務角色 (aws-quicksight-service-role-v0) 新增為例外狀況。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
請完成以下步驟:
-
確認 Quick Suite 具有存取 S3 儲存貯體的權限。
-
若要取得 aws-quicksight-service-role-v0 角色的唯一 ID,請執行 get-role AWS CLI 命令:
aws iam get-role --role-name aws-quicksight-service-role-v0 --query 'Role.RoleId' --output json"AROAEXAMPLEID"
**注意:**您也可以使用 AWS Identity and Access Management (IAM) GetRole API 呼叫。該 ID 對每個 Quick Suite 帳戶而言都是唯一的。
-
(選用) 若您想要為 IAM 使用者新增例外狀況,請執行 get-user AWS CLI 命令以查詢使用者的唯一 ID:
aws iam get-user --user-name example-username
**注意:**將 example-username 替換為 IAM 使用者名稱。
-
開啟 Amazon S3 console (Amazon S3 主控台)。
-
選取您的 S3 儲存貯體。
-
選擇 Permissions (權限) 索引標籤。
-
在 Bucket Policy (儲存貯體政策) 下,選擇 Edit (編輯)。
-
輸入類似下列範例的儲存貯體政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::examplebucketname",
"arn:aws:s3:::examplebucketname/*"
],
"Condition": {
"StringNotLike": {
"aws:userid": [
"AROAEXAMPLEID:*",
"AIDAEXAMPLEUSERID"
]
}
}
}
]
}
注意:將 examplebucketname 替換為您的 S3 儲存貯體名稱,並將 AROAEXAMPLEID 替換為您的唯一 ID。若要為 IAM 使用者新增例外狀況,請將 AIDAEXAMPLEUSERID 替換為 IAM 使用者的唯一 ID。IAM 使用者政策也必須包含針對 S3 儲存貯體的允許陳述式。
如果刪除 Quick Sight 服務角色和 IAM 使用者,則您將無法存取該儲存貯體。若要解決此問題,請以 AWS 帳戶根使用者身分登入,然後使用 delete-bucket-policy AWS CLI 命令刪除儲存貯體政策。
相關資訊
如何將 Amazon S3 儲存貯體存取限制為特定 IAM 角色