如何解決在 CloudFormation 中建立 AWS::EC2::Instance 資源時發生的「沒有 IAM 許可來處理 AWS::EC2::Instance 資源上的標籤」錯誤?

2 分的閱讀內容
0

嘗試在 AWS CloudFormation 中建立 AWS::EC2::Instance 資源時,我收到「沒有 IAM 許可來處理 AWS::EC2::Instance 資源上的標籤」錯誤。

簡短說明

建立 AWS::EC2::Instance 資源且下列情況屬實時,您會收到此錯誤:

  • 您可以在 CloudFormation 範本中為「標籤」內容指定值。
  • AWS Identity and Access Management (IAM) 使用者、IAM 角色或 CloudFormation 服務角色沒有必要的 ec2:CreateTags 許可。

發生此錯誤時,即使資源標記為 CREATE_COMPLETE,使用「標籤」內容指定的自訂標籤也不會套用至 EC2 執行個體。

**注意事項:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請確保您使用的是最新的 AWS CLI 版本

解決方案

1.    確認建立 CloudFormation 堆疊的 IAM 使用者、IAM 角色或 CloudFormation 服務角色具有在受影響的 EC2 執行個體上執行 ec2:CreateTagsec2:DeleteTags許可

2.    使用 CloudFormation 主控台或 AWS CLI 對受影響的 CloudFormation 範本中 AWS::EC2::Instance 資源的「標籤」內容予以評論。然後,更新您的堆疊。

使用 CloudFormation 主控台:

在 CloudFormation 範本中,對「標籤」內容予以評論,然後更新您的堆疊。例如:

Resources:
  MyEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
#      Tags:
#      - Key: key1
#        Value: value1
#      - Key: key2
#        Value: value2

使用 AWS CLI:

執行 update-stack 命令:

aws cloudformation update-stack --region YOUR_REGION --template-body file://YOUR_TEMPLATE_FILE_TAGS_COMMENTED —stack-name YOUR_STACK_NAME

**注意事項:**將 YOUR_REGIONYOUR_TEMPLATE_FILE_TAGS_COMMENTEDYOUR_STACK_NAME 取代為您的值。

3.    使用 CloudFormation 主控台或 AWS CLI 對受影響的 CloudFormation 範本中 AWS::EC2::Instance 資源的「標籤」內容取消評論。然後,再次更新您的堆疊。

使用 CloudFormation 主控台:

在 CloudFormation 範本中,從「標籤」內容移除評論,然後更新您的堆疊。例如:

Resources:
  MyEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      Tags:
      - Key: key1
        Value: value1
      - Key: key2
        Value: value2

使用 AWS CLI:

執行 update-stack 命令:

aws cloudformation update-stack --region YOUR_REGION --template-body file://YOUR_TEMPLATE_FILE_TAGS_UNCOMMENTED —stack-name YOUR_STACK_NAME

**注意事項:**將 YOUR_REGIONYOUR_TEMPLATE_FILE_TAGS_UNCOMMENTEDYOUR_STACK_NAME 取代為您的值。

4.    使用 EC2 主控台或 AWS CLI 檢查您的標籤是否正確套用至 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。

使用 Amazon EC2 主控台:

1.    開啟 Amazon EC2 主控台

2.    從導覽窗格的「執行個體」區段中,選擇「執行個體」。

3.    選取透過 CloudFormation 建立的執行個體。

4.    選擇「標籤」索引標籤,然後檢查表格中是否已填入 CloudFormation 範本中指定的自訂標籤。

使用 AWS CLI:

執行 describe-tags 命令:

aws ec2 describe-tags —filters "Name=resource-id,Values=YOUR_INSTANCE_ID"

**注意事項:**將 YOUR_INSTANCE_ID 取代為您的堆疊中 EC2 執行個體的執行個體 ID。


AWS 官方
AWS 官方已更新 3 年前