Как запустить экземпляр EC2 с использованием облачной информации AWS

Я отправил свой AMI в AWS Marketplace, но он был отклонен, сказав, что мне нужно преобразовать мои ручные инструкции в шаблон CloudFormation. Мои инструкции для пользователей в настоящее время утверждают, что:

- User must create a new Role
- Assign AWSS3FullAccess to this role
- Launch the AMI with WebSecurityGroup (port 80 and 443)

Я не использовал CloudFormation раньше, поэтому я хотел бы задать пару вопросов

  1. Можно ли создать шаблон CloudFormation таким образом, чтобы он: 1) создавал новую роль 2) назначал политику для этой роли 3) создавал экземпляр EC2 с AMI (был бы указан amiID) с этой ролью и WebSecurityGroup.

  2. Я создал следующий шаблон, который создает новую роль и назначает ей полный доступ к S3.

Но я не уверен, как сделать все остальное. Как я могу запустить экземпляр EC2 с этой новой ролью и указать мой идентификатор AMI?

AWSTemplateFormatVersion: '2010-09-09'
Description: Sample

Resources:
  MyAmiRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
        - Effect: Allow
          Principal:
            Service:
            - ec2.amazonaws.com
          Action: sts:AssumeRole
      ManagedPolicyArns:
      - arn:aws:iam::aws:policy/AmazonS3FullAccess
      Path: "/"

1 ответ

Решение

В своем шаблоне Amazon CloudFormation вы должны определить следующие ресурсы:

  • IAM::Role (как вы уже сделали)
  • IAM::InstanceProfile (что позволяет использовать роль для экземпляра Amazon EC2)
  • EC2::SecurityGroup
  • AWS::EC2::Instance который будет относиться к InstanceProfile, ваш AMI и группа безопасности

Для некоторых примеров см.:

Последняя ссылка обычно содержит примеры с каждым типом ресурса, поэтому вам нужно скопировать примеры, а затем настроить их для своего варианта использования.

Другие вопросы по тегам