我想建立 Amazon SageMaker 特徵群組,但收到「AccessDenied」(存取遭拒) 錯誤。
簡短說明
SageMaker「AccessDenied」(存取錯誤) 錯誤表示 AWS Identity and Access Management (IAM) 角色沒有足夠的權限來執行建立特徵群組作業。
當執行角色權限缺少以下資訊或設定錯誤時,您會收到「AccessDenied」(存取遭拒) 錯誤:
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱AWS CLI 錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
若要在建立特徵群組時查看詳細的錯誤訊息,請從終端執行以下命令,然後檢查 FailureReason:
$ aws sagemaker describe-feature-group --feature-group-name nameofthefeaturegroup
缺少 AmazonSageMakerfeatureStoreAccess 政策和 Amazon S3 儲存貯體命名要求
如果您的執行角色缺少 AmazonSageMakerFeatureStore 政策,請先檢查附加到執行角色的政策。然後,附加 AmazonSageMakerFeatureStoreAccess 政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetBucketAcl",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::*SageMaker*",
"arn:aws:s3:::*Sagemaker*",
"arn:aws:s3:::*sagemaker*"
]
}
]
}
如果在新增 AmazonSageMakerFeatureStoreAccess 政策後特徵群組建立失敗,請檢查儲存貯體名稱中是否有「sagemaker」一詞。對於儲存在 S3 儲存貯體中的 Amazon 受管政策,必須使用此命名慣例。
缺少 Lake Formation 權限
由於 AWS Lake Formation 權限不足,特徵群組建立失敗。當您建立特徵群組時,也會自動建立 AWS Glue 資料庫。您使用 SageMaker 建立的任何特徵群組都會以表格形式建立在此 AWS Glue 資料庫中。
確認執行角色有權建立 AWS Glue 資料庫。如果執行角色沒有權限,則請完成下列步驟:
- 開啟 LakeFormation 主控台。
- 從左側邊欄中,選擇 Permissions (權限),然後選擇 Data Permissions (資料權限)。
- 選擇 Grant (授予)。
- 從主體下拉式清單中選擇 IAM execution role (IAM 執行角色),然後授予所需的權限。
注意: AWS Lake Formation 要求每個主體 (使用者或角色) 都必須獲得授權,才能對 Lake Formation 管理的資源執行動作。
如需授予資料庫權限的詳細資訊,請參閱授予對共用給您帳戶的資料庫或資料表的權限。
缺少 AWS KMS 政策
由於缺少 AWS KMS 政策,CreateFeatureGroup API 呼叫失敗。若要檢查此問題,請查看執行角色的 IAM 政策,然後確認它已附加以下政策:
kms:GenerateDataKeykms:Decrypt
kms: Encrypt
如果執行 AWS CLI 命令後看不到上述政策,請附加政策,然後再試一次。
S3 儲存貯體政策
出現「AccessDenied」(存取遭拒) 錯誤的原因是 Amazon S3 儲存貯體政策阻止存取該儲存貯體。查看 S3 儲存貯體政策,然後檢查用於建立特徵群組的執行角色是否有權存取該儲存貯體。
相關資訊
授與資源連結權限