本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWSSupport-TroubleshootS3AccessSameAccount
Description
AWSSupport-TroubleshootS3AccessSameAccount Runbook 透過評估授予 Amazon S3 資源上請求者 AWS Identity and Access Management (IAM) 身分 (使用者或角色) 的存取層級,協助診斷 Amazon S3) 存取遭拒的儲存貯體或物件操作問題。Runbook 會評估與 Amazon S3 資源以及輸入參數中指定的 IAM 使用者或角色相關聯的所有相關存取政策、使用者政策和資源型政策 (儲存貯體政策、儲存貯體 ACL 和物件 ACL)。
重要
如果請求者與 Amazon S3 儲存貯體或物件位於相同的 AWS 帳戶中,您只能使用此 Runbook 來評估存取遭拒的問題。
請確定您的使用者或AutomationAssumeRole用來執行此 Runbook 的 具有取得/列出相關資源政策和儲存貯體/金鑰中繼資料組態的必要許可。
如果資源政策中有NotPrincipal元素,則 Runbook 會在步驟 中擲出錯誤PolicyModifier。
如何運作?
Runbook 會執行下列評估:
驗證 IAM 使用者或角色的存在,並解構 ARN 以識別其關鍵元件。
檢查 Amazon S3 資源 (儲存貯體或物件) 是否存在,並傳回儲存貯體和金鑰名稱。
驗證使用者/角色和儲存貯體/物件是否在同一 AWS 帳戶中。
如適用,擷取儲存貯體和物件 ACL 組態。
擷取連接至使用者或角色的 IAM 政策。
如果儲存貯體政策存在,則擷取儲存貯體政策。
如果適用, 會擷取加密物件的 AWS KMS 金鑰政策。
如果適用, 會擷取 VPC 端點政策。
如果提供,則擷取 AWS Organizations 服務控制政策 SCPs)。
同時評估所有政策,以判斷指定動作的有效許可。
文件類型
自動化
擁有者
Amazon
平台
/
必要的 IAM 許可
AutomationAssumeRole 參數需要下列動作才能成功使用 Runbook。
ec2:DescribeVpcEndpoints(如果指定 VPC 端點)iam:GetGroupPolicyiam:GetPolicyiam:GetPolicyVersioniam:GetRoleiam:GetRolePolicyiam:GetUseriam:GetUserPolicyiam:ListAttachedRolePoliciesiam:ListAttachedUserPoliciesiam:ListGroupsForUseriam:ListRolePoliciesiam:ListUserPoliciesiam:SimulatePrincipalPolicykms:GetKeyPolicy(如果使用 KMS 加密)s3:GetBucketAcls3:GetBucketLocations3:GetBucketPolicys3:GetObjectAcls3:GetObjectVersions3:ListBucket
IAM 政策範例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVpcEndpoints", "iam:GetGroupPolicy", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:GetRolePolicy", "iam:GetUser", "iam:GetUserPolicy", "iam:ListAttachedRolePolicies", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:SimulatePrincipalPolicy", "kms:GetKeyPolicy", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketPolicy", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": "*" } ] }
指示
請依照下列步驟設定自動化:
-
在文件下的 Systems Manager
AWSSupport-TroubleshootS3AccessSameAccount中導覽至 。 -
選擇 Execute automation (執行自動化)。
-
針對輸入參數,輸入下列內容:
-
AutomationAssumeRole (選用):
IAM 角色的 Amazon Resource Name (ARN),允許 Systems Manager Automation 代表您執行動作。如果未指定角色,Systems Manager Automation 會使用您的許可。
-
S3ResourceArn (必要):
Amazon S3 資源 (儲存貯體或金鑰) 的 ARN。對於
PutObject或 等物件操作GetObject,請提供物件的 ARN。範例:arn:aws:s3:::bucket_name或arn:aws:s3:::bucket_name/key_name。 -
S3Action (必要):
您希望 Runbook 評估存取內容的 Amazon S3 動作。請務必為特定動作提供對應的 Amazon S3 資源類型 (儲存貯體或物件)。範例包括:
GetObject、PutObject、DeleteObject、GetBucketAcl等。 -
RequesterArn (必要):
您想要在特定 Amazon S3 資源上尋找存取層級的 IAM 主體 (使用者或角色) ARN。例如:
arn:aws:iam::123456789012:user/user_name或arn:aws:iam::123456789012:role/example-role。 -
RequesterRoleSessionName (選用):
擔任角色的工作階段名稱,以防 IAM ARN 是角色且您想要提供特定的工作階段名稱。
-
S3ObjectVersionId (選用):
如果物件有多個版本,此參數可讓您指定要評估存取內容的物件特定版本。
-
KmsKeyArn (選用):
如果 AWS KMS 金鑰 ARN 與動作相關 (例如:
CompleteMultipartUpload、CopyObjectCreateMultipartUpload、、PutObject等)。注意:Runbook 不支援在不同 AWS 帳戶中指定 AWS KMS 金鑰。 -
VpcEndpointId (選用):
與存取評估相關的虛擬私有雲端 (VPC) 端點 ID。Amazon S3 儲存貯體政策可以控制特定 VPC 端點對儲存貯體的存取。
-
ContextKeyList (選用):
與政策評估相關的條件索引鍵清單和對應值。例如:
[{"ContextKeyName":"aws:PrincipalArn","ContextKeyValues":["arn:aws:iam::123456789012:root"],"ContextKeyType":"string"}]。 -
SCPPolicy (選用):
如果您希望 Runbook 根據特定 SCP 政策評估輸入,則為 AWS Organizations Service Control Policy (SCP)。當您從組織的管理帳戶執行此 Runbook 時,不需要且會予以忽略。
-
-
選取執行。
-
自動化會啟動。
-
文件會執行下列步驟:
-
IAMCheckTypeset:檢查 IAM 使用者或角色是否存在,並解構 ARN 以識別其關鍵元件。
-
ResourceTypeCheck:檢查 Amazon S3 資源 (儲存貯體或物件) 是否存在,並傳回儲存貯體和金鑰名稱。
-
UaBoOoAccountCheck:驗證使用者/角色和儲存貯體/物件是否在同一 AWS 帳戶中。
-
KeyDetailsChecker:如果資源是 物件,則擷取 Amazon S3 物件的詳細資訊。
-
ACLBucketCheck:擷取儲存貯體 ACL 組態。
-
ConditionSetter:設定政策評估的條件金鑰。
-
FetchIAMPolicy:擷取連接至使用者或角色的 IAM 政策。
-
branchOnACLCheck:判斷是否需要檢查物件 ACL。
-
FetchBucketPolicy:如果儲存貯體政策存在,則擷取儲存貯體政策。
-
branchOnKMSCheck:決定是否需要評估 AWS KMS 金鑰政策。
-
FetchKMSPolicy:如適用,擷取 AWS KMS 金鑰政策。
-
branchOnVPCeCheck:判斷是否需要評估 VPC 端點政策。
-
FetchVPCePolicy:如適用,擷取 VPC 端點政策。
-
FetchSCPPolicy:如果提供,則擷取 AWS Organizations SCP。
-
PolicyModifier:修改並準備要評估的所有政策。
-
EvaluatePolicy:同時評估所有政策,以判斷指定動作的有效許可。
-
-
完成後,請檢閱輸出區段以取得執行的詳細結果。
參考
Systems Manager Automation