我想要存取 Amazon Simple Storage Service (Amazon S3) 儲存貯體中的物件,該物件允許公開讀取權。但是,我收到「403 存取遭拒」的錯誤。
解決方案
如果您無法從公有 S3 儲存貯體存取物件,請執行 AWS Systems Manager 上的 AWSSupport-TroubleshootS3PublicRead 自動化執行手冊。這樣會有助於分析影響儲存儲存貯體和其物件的許可設定,例如儲存貯體政策和物件存取控制清單 (ACL)。
**注意事項:**AWSSupport-TroubleshootS3PublicRead 執行手冊會從公開讀取物件分析 403 錯誤。但不會評估私有物件的許可。
- 開啟 Systems Manager 主控台。
- 在導覽窗格中,選擇「自動化」。
- 選擇「執行自動化」。
- 在「選擇文件」下,選擇「Amazon 擁有者」索引標籤。
- 在「自動化文件」搜尋列中,輸入 AWSSupport-TroubleshootS3PublicRead,然後按「Enter 鍵」。
- 選擇 AWSSupport-TroubleshootS3PublicRead。
- 選擇「執行自動化」。
- 選擇「簡單執行」。
- (選用項目) 對於 AutomationAssumeRole,您可以選取 Systems Manager 擔任的 AWS Identity and Access Management (IAM) 角色,以將請求傳送至您的儲存貯體。如果您將此欄位保留空白,Systems Manager 即會使用您目前的 IAM 身分來設定執行手冊。
**重要事項:**您選取的 IAM 角色信任政策必須允許 Systems Manager Automation 擔任該角色。此外,IAM 角色必須擁有執行手冊的必要許可。請參閱 AWSSupport-TroubleshootS3PublicRead 中的「必要 IAM 許可」一節。
- 針對 S3BucketName,輸入您想要疑難排解 S3 儲存貯體的名稱。
- (選用項目) 針對 S3PrefixName,您可以指定字首以進行分析。如果您將此欄位保留空白,則執行手冊會按字典順序列出儲存貯體並評估前幾個物件。
- (選用項目) 針對 StartAfter,您可以指定您想要執行手冊開始從其中列出的金鑰名稱。
- 針對 MaxObjects,輸入您想要執行手冊評估的物件數量上限。預設值為 5。
- 針對 IgnoreBlockPublicAccess,最佳實務是將該值保留為 false。
**警告:**如果您將值變更為 true,則這樣會忽略可能封鎖存取的「Amazon S3 封鎖公開存取」設定。
- 針對 HttpGet,如果您想要執行手冊為每個物件執行部分 HTTP GET 請求 (第一個位元組),則請將該值保留為 true。如果您想要執行手冊執行完整的 GET 請求,則請將該值變更為 false。
- 針對 詳細資訊,若要在分析期間查看詳細資訊,請輸入 true。若要僅查看警告和錯誤訊息,請輸入 false。
- (選用項目) 針對 CloudWatchLogGroupName,您可以輸入您想要傳送分析結果的 Amazon CloudWatch 日誌群組名稱。如果您指定名稱,但日誌群組不存在,則執行手冊會嘗試使用該名稱建立日誌群組。
- (選用項目) 針對 CloudWatchLogStreamName,您可以輸入您想要傳送分析結果的 CloudWatch 日誌串流名稱。如果您指定名稱,但日誌群組不存在,則執行手冊會嘗試使用該名稱建立日誌群組。如果您將此欄位保留空白,則執行手冊會將執行手冊的執行 ID 作為日誌串流名稱使用。
- 針對 ResourcePartition,選取 S3 儲存貯體所在的分區。選項為 aws、aws-us-gov,或 aws-cn。
- (選用項目) 針對「標籤」,輸入最多五個鍵值組標籤。
- 選擇「執行」。
- 使用「執行狀態」以追蹤執行手冊的進度。
- 狀態表示「成功」後,請檢閱「輸出」中列出的結果。結果可能會包括每個經過執行手冊評估物件的錯誤碼。使用這些錯誤碼以針對每個物件的匿名請求,診斷「存取遭拒」錯誤的原因。
**提示:**若要檢閱評估中個別步驟的結果,請選擇「已執行步驟」下的相關步驟 ID。「已執行步驟」位於「執行狀態」下。