Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何對檔案閘道的 CloudWatch 健康日誌中的 S3AccessDenied 錯誤進行疑難排解?
我嘗試在 AWS Storage Gateway 上存取網路檔案系統 (NFS) 或伺服器訊息區塊 (SMB) 檔案共用。但是,來自 Amazon CloudWatch 的檔案閘道健康日誌顯示 S3AccessDenied 錯誤。如何對此問題進行疑難排解?
解決方法
若要解決 S3AccessDenied 錯誤,您必須檢閱與檔案共用相關聯的權限原則。然後,您必須新增任何遺失的必要權限。根據收到「拒絕存取」錯誤的時間識別您必須檢閱的權限:
- 建立檔案共用會停留在建立或無法使用狀態
- 將檔案寫入檔案共用
- 從檔案共用讀取檔案
建立檔案共用會停留在建立或無法使用狀態
如果您在建立檔案共用時收到「拒絕存取」錯誤,且檔案共用停留在建立或無法使用狀態,則 CloudWatch 日誌類似下列內容:
{ "severity": "ERROR", "bucket": "AWSDOC-EXAMPLE-BUCKET", "prefix": "", "roleArn": "arn:aws:iam::123456789:role/service-role/StorageGatewayBucketAccessRolec6914add-b232-40dc-abef-4a9eeaaed8", "source": "share-ABCD1234", "type": "S3AccessDenied", "operation": "s3:ListObjects", "gateway": "sgw-ABCD1234", "timestamp": "1597486809991" }
檢閱下列權限設定:
1. 檢查與檔案共用相關聯的 AWS 身分和存取管理 (IAM) 角色,以確認其具有關聯的 Amazon Simple Storage Service (Amazon S3) 儲存貯體的下列權限:
- s3:GetBucketLocation
- s3:ListBucket
2. 檢閱關聯的儲存貯體的儲存貯體政策,以確認沒有明確的拒絕語句 ("Effect": "Deny") 阻止以下權限所需的存取:
- s3:GetBucketLocation
- s3:ListBucket
3. 如果檔案閘道所在的 Amazon Virtual Private Cloud (Amazon VPC) 使用適用於 Amazon S3 的 VPC 端點,則檢閱 VPC 端點政策。確認政策允許您的檔案閘道存取 S3 儲存貯體和物件。
將檔案寫入檔案共用
如果將檔案寫入檔案共用時收到「拒絕存取」錯誤,CloudWatch 日誌類似下列內容:
{ "severity": "ERROR", "bucket": "AWSDOC-EXAMPLE-BUCKET", "prefix": "/test1", "roleArn": "arn:aws:iam::123456789:role/service-role/StorageGatewayBucketAccessRole0617b6ee-4809-48bc-b646-8dda9e9c32", "source": "share-ABCD1234", "type": "S3AccessDenied", "operation": "S3Upload", "gateway": "sgw-ABCD1234", "timestamp": "1597493322178" }
檢閱下列權限設定:
1. 檢查與檔案共用關聯的 IAM 角色,以確認其具有關聯的 Amazon S3 儲存貯體的下列權限:
- s3:PutObject
- s3:PutObjectAcl
2. 檢閱關聯的儲存貯體的儲存貯體政策,以確認沒有明確的拒絕語句 ("Effect": "Deny") 阻止您需要獲得以下權限的存取:
- s3:PutObject
- s3:PutObjectAcl
3. 如果檔案閘道所在的 Amazon VPC 使用適用於 Amazon S3 的 VPC 端點,則檢閱 VPC 端點政策。確認政策允許您的檔案閘道存取 S3 儲存貯體和物件。
4. 如果關聯的 S3 儲存貯體已使用 AWS Key Management Service (KMS) 加密,則檢閱加密金鑰的政策。金鑰政策必須將下列權限授予與檔案共用關聯的 IAM 角色:
- kms:Decrypt
- kms:Encrypt
- kms:ReEncrypt
- kms:GenerateDataKey
- kms:DescribeKey
如果檔案共用的 IAM 角色和 AWS KMS 金鑰屬於不同的 AWS 帳戶,則必須在金鑰政策和 IAM 角色的政策中同時設定這些權限。
從檔案共用讀取檔案
如果從檔案共用讀取檔案時收到「拒絕存取」錯誤,CloudWatch 日誌類似下列內容:
{ "severity": "ERROR", "bucket": "AWSDOC-EXAMPLE-BUCKET", "prefix": "/test1", "roleArn": "arn:aws:iam::123456789:role/service-role/StorageGatewayBucketAccessRole0617b6ee-4809-48bc-b646-8dda9e9c32", "source": "share-ABCD1234", "type": "S3AccessDenied", "operation": "s3:HeadObject", "gateway": "sgw-ABCD12347", "timestamp": "1597488260202" }
檢閱下列權限設定:
1. 檢查與檔案共用關聯的 IAM 角色,以確認其具有關聯的 Amazon S3 儲存貯體的下列權限:
- s3:GetObject
- s3:GetObjectAcl
2. 檢閱關聯的儲存貯體的儲存貯體政策,以確認沒有明確的拒絕語句 ("Effect": "Deny") 阻止您需要獲得以下權限的存取:
- s3:GetObject
- s3:GetObjectAcl
3. 如果檔案閘道所在的 Amazon VPC 使用適用於 Amazon S3 的 VPC 端點,則檢閱 VPC 端點政策。確認政策允許您的檔案閘道存取 S3 儲存貯體和物件。
4. 如果關聯的 S3 儲存貯體已使用 AWS KMS 加密,則檢閱加密金鑰的政策。金鑰政策必須將下列權限授予與檔案共用關聯的 IAM 角色:
- kms:Decrypt
- kms:Encrypt
- kms:ReEncrypt
- kms:GenerateDataKey
- kms:DescribeKey
如果檔案共用的 IAM 角色和 AWS KMS 金鑰屬於不同的 AWS 帳戶,則必須在金鑰政策和 IAM 角色的政策中同時設定這些權限。
**注意:**下列範例 IAM 政策會授予檔案共用列出儲存貯體以及上傳、下載和刪除儲存貯體 (AWSDOC-EXAMPLE-BUCKET) 中的物件所需的權限:
{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:GetAccelerateConfiguration", "s3:GetBucketLocation", "s3:GetBucketVersioning", "s3:ListBucket", "s3:ListBucketVersions", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET", "Effect": "Allow" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*", "Effect": "Allow" } ] }
相關資訊
相關內容
- 已提問 2 年前
- 已提問 3 年前
- 已提問 4 個月前
