對於所有資源都來自同一個 AWS 帳戶的 Amazon S3 儲存貯體,如何對 403 存取遭拒錯誤進行疑難排解?
我在嘗試存取我的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。所有相關資源都來自同一個 AWS 帳戶。但卻收到了 "403 Access Denied" (403 存取遭拒) 錯誤。
簡短描述
當您對 Amazon S3 儲存貯體執行禁止請求時,該服務便會返回 403 存取遭拒錯誤。若要手動對 403 存取遭拒錯誤進行疑難排解,請參閱如何對來自 Amazon S3 的「403 存取遭拒」錯誤進行疑難排解?
您還可以使用來自 AWS Systems Manager 的 AWSSupport-TroubleshootS3AccessSameAccount Runbook 來協助您診斷來自 S3 儲存貯體的存取遭拒問題。該 Runbook 會評估授予 S3 資源請求者對來自同一 AWS 帳戶的所有相關資源的存取等級。這包括與 S3 資源相關聯的存取、使用者和以資源為基礎的政策,以及輸入參數中指定的 AWS Identity and Access Management (IAM) 使用者或角色。
**注意:**AWSSupport-TroubleshootS3AccessSameAccount 不評估跨帳戶資源的許可。此外,請求者必須與 S3 儲存貯體或物件位於同一 AWS 帳戶中。
解決方案
所需步驟
按照以下步驟從 Systems Manager 主控台執行 AWSSupport-TroubleshootS3AccessSameAccount Runbook:
1. 開啟 Systems Manager 主控台。
2. 在導覽窗格中,選擇 Automation (自動化)。
3. 選擇 Execute automation (執行自動化)。
4. 在 Choose document (選擇文件) 下,選擇 Owned by Amazon (由 Amazon 擁有) 標籤。
5. 在「自動化」文件搜尋列中,從下拉式清單中選擇「文件名稱字首」篩選條件。然後,從下拉列表中選擇等於,然後輸入 AWSSupportTroubleshootS3AccessSameAccount。然後,按 Enter。
6. 選取 AWSSupport-TroubleshootS3AccessSameAccount。
7. 選擇 Next (下一步)。
8. 選擇 Simple execution (簡單執行)。
9. 對於 S3ResourceArn,輸入您要疑難排解的 S3 儲存貯體或物件的 ARN。例如,若要測試物件的上傳或下載:
arn:aws:s3:::bucket_name/key_name
10. 對於 S3Action,選擇您希望 Runbook 評估存取內容的 S3 動作。
11. 對於 RequesterArn,輸入您要尋找其對特定 S3 資源存取等級的 IAM 使用者或角色的 ARN。例如:
arn:aws:iam::123456789012:user/user_name or arn:aws:iam::123456789012:role/example-role
12. 選擇 Execute (執行)。
使用 Execution (執行) 狀態來追蹤文件的進度。狀態變更為 Success (成功) 後,檢視 Outputs (輸出) 部分中列出的結果。結果包含評估的每個物件的錯誤碼。
注意:若要檢閱評估中單個步驟的結果,請在 Executed steps (已執行的步驟) 下選擇相關的步驟 ID。
選用步驟
以下為選用步驟。
對於 AutomationAssumeRole,您可以選取一個 IAM 角色讓 Systems Manager 擔任,以讓其向您的儲存貯體傳送請求。如果您將此欄位留空,則 Systems Manager 將使用您在正使用的 IAM 身分設定文件。如需詳細資訊,請參閱 AutomationAssumeRole 所需的 IAM 許可部分。
**重要提示:**您選取的 IAM 角色的信任政策必須允許 Systems Manager Automation 擔任該角色。此外,該 IAM 角色必須有權執行 AWSSupport-TroubleshootS3AccessSameAccount Runbook。
如果 IAM ARN 是一個角色並且您想要提供特定的工作階段名稱,則對於 RequesterRoleSessionName,輸入相關工作階段名稱。
如果物件有多個版本,則對於 S3ObjectVersionId,輸入物件的 VersionId。此參數允許您指定要為其評估存取內容的物件的版本。
如果它與動作相關,則為 KmsKeyArn 輸入 KMS 金鑰 ARN。例如,測試使用 KMS 金鑰加密的物件的下載。
對於 VpcEndpointId,您可以輸入與存取評估相關的 Amazon Virtual Private Cloud (Amazon VPC) 端點 ID。Amazon S3 儲存貯體政策可以控制從特定 Amazon VPC 端點對儲存貯體的存取。
對於 ContextKeyList,您可以輸入與政策評估相關的條件內容索引鍵清單和對應的值。例如,在您的儲存貯體政策中明確拒絕 PutObject:
{"ContextKeyName":"s3:x-amz-server-side-encryption-aws-kms-key-id","ContextKeyValues”:["arn:aws:kms:us-east-1:123456789012:key/abc12345-b1e9-45a3-aa90-39ec93dd9b82”],"ContextKeyType":"string”}
如果您希望 Runbook 將輸入與特定 AWS Organizations 服務控制政策 (SCP) 進行比較,則對於 SCPPolicy,輸入該 SCP。輸入值時移除所有分行符號、定位字元或空白字元。
**注意:**如果您從相關組織的管理帳戶執行Runbook,則不需要前面的步驟。
對於 Tags (標籤),您可以在此標記自動化,以便於對自動化進行分類。
對於 AWS CLI command and shareable execution link (AWS CLI 命令和可共享執行連結),該 Runbook 提供了適用於 Linux、Unix 和 macOS X 的範例 AWS Command Line Interface (AWS CLI) 命令。該 Runbook 還提供了可共享連結。
AutomationAssumeRole 所需的 IAM 許可
AutomationAssumeRole 參數需要某些動作才能使用 Runbook。
以下範例政策包含自動化角色所需的動作:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"iam:SimulateCustomPolicy",
"iam:GetUser",
"iam:GetPolicy",
"iam:GetPolicyVersion",
"iam:ListAttachedUserPolicies",
"iam:ListUserPolicies",
"iam:GetUserPolicy",
"iam:ListGroupsForUser",
"iam:ListGroupPolicies",
"iam:GetGroupPolicy",
"iam:ListAttachedGroupPolicies",
"iam:GetRole",
"iam:GetRolePolicy",
"iam:ListAttachedRolePolicies",
"iam:ListRolePolicies"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"s3:GetObjectAcl",
"s3:GetObjectVersionAcl",
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::bucket_name/destination-prefix",
"Effect": "Allow"
},
{
"Action": [
"s3:GetBucketPolicy",
"s3:GetBucketAcl",
"s3:ListBucket",
"s3:GetBucketAcl",
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::bucket_name",
"Effect": "Allow"
},
{
"Action": [
"ec2:DescribeVpcEndpoints"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"kms:GetKeyPolicy"
],
"Resource": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
"Effect": "Allow"
},
{
"Action": [
"organizations:ListPolicies",
"organizations:DescribePolicy"
],
"Resource": "arn:aws:organizations::aws:policy/service_control_policy/*",
"Effect": "Allow"
},
{
"Action": [
"ssm:GetAutomationExecution",
"ssm:DescribeAutomationExecutions"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ssm:StartAutomationExecution",
"Resource": "arn:aws:ssm:*:*:automation-definition/AWSSupport-TroubleshootS3AccessSameAccount:*",
"Effect": "Allow",
"Sid": "StartAutomationExecution"
},
{
"Action": "access-analyzer:ValidatePolicy",
"Resource": "*",
"Effect": "Allow"
}
]
}

相關內容
- 已提問 3 個月前lg...
- 已提問 4 個月前lg...
- 已提問 4 個月前lg...
- 已提問 4 個月前lg...
- 已提問 4 個月前lg...
- AWS 官方已更新 8 個月前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前