我嘗試對 Amazon EC2 Auto Scaling 群組使用啟動範本,卻收到 "You are not authorized" 錯誤。
解決方法
您會收到 "You are not authorized" 錯誤,因為您沒有正確的 AWS Identity and Access Management (IAM) 權限來啟動 EC2 Auto Scaling 群組。若要解決此問題,請將下列權限新增至您的 IAM 政策。
IAM 憑證
請確定您的 IAM 實體具有使用 RunInstances API 動作的權限。此外,如果您在啟動範本中使用標籤,請確定您具有使用 CreateTags API 動作的權限。
政策範例:
{
"Statement": [
{
"Action": [
"ec2:RunInstances",
"ec2:CreateTags"
],
"Effect": "Allow",
"Resource": [
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:volume/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:image/*",
"arn:aws:ec2:*:*:launch-template/*"
]
}
],
"Version": "2012-10-17"
}
若要提供對所有 Amazon Elastic Compute Cloud (Amazon EC2) 資源及相關服務的完整存取權,您可以使用 AmazonEC2FullAccess AWS 受管政策。
執行個體設定檔
若要啟動指定執行個體設定檔的範本,請確保政策具有 PassRole 權限。
政策範例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": [
"arn:aws:iam::444455556666:role/InstanceProfileRole"
],
"Condition": {
"StringEquals": {
"iam:PassedToService": "ec2.amazonaws.com"
}
}
}
]
}
**注意:**您只能使用 PassRole 權限,將 IAM 角色傳遞給與相同 AWS 帳戶共用的服務。
其他帳戶中的 AMI
若要啟動指定其他 AWS 帳戶中 Amazon Machine Image (AMI) 的範本,該帳戶必須具有該 AMI 的存取權。
若要驗證 AMI 的權限,請完成下列步驟:
- 透過 AMI 擁有者帳戶開啟 Amazon EC2 主控台。
- 在導覽窗格中,選擇 AMIs (AMI)。
- 在 AMI name (AMI 名稱) 中,選取您的 AMI,然後選擇 Permissions (權限) 索引標籤。
- 在 Permissions (權限) 中,確認共用帳戶已列於 AMI 中。
- 如果帳戶沒有 AMI 的權限,請與帳戶共用 AMI。
相關資訊
IAM role for applications that run on Amazon EC2 instances (在 Amazon EC2 執行個體上執行的應用程式 IAM 角色)
AWSSupport-TroubleshootIAMAccessDeniedEvents