使用cloudformation附加IAM角色

用户13723363

我正在尝试使用ccloudformation创建一个具有访问S3存储桶的IAM角色的Web服务器(Ec2实例)。它创建角色,但不将角色附加到ec2-instance。

webserver:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupName: sg-webserver
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIp: 0.0.0.0/0
          Description: For traffic from Internet
      GroupDescription: Security Group for demo server
      VpcId: !Ref VPC
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      AvailabilityZone: us-east-2a
      BlockDeviceMappings:
        - DeviceName: /dev/xvda
          Ebs:
            DeleteOnTermination: "true"
            VolumeSize: "8"
            VolumeType: gp2
      ImageId: ami-0bdcc6c05dec346bf
      InstanceType: t2.micro
      KeyName: key-webserver
      NetworkInterfaces:
        - Description: Primary network interface
          DeviceIndex: 0
          SubnetId: !Ref SubnetA
          GroupSet:
            - Ref: webserver
  ListS3BucketsInstanceProfile:
    Type: AWS::IAM::InstanceProfile
    Properties:
      Path: "/"
      Roles:
        - Ref: S3FullAccess
  ListS3BucketsPolicy:
    Type: AWS::IAM::Policy
    Properties:
      PolicyName: ListS3BucketsPolicy
      PolicyDocument:
        Statement:
          - Effect: Allow
            Action:
              - s3:List*
            Resource: "*"
      Roles:
        - Ref: S3FullAccess
  S3FullAccess:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - ec2.amazonaws.com
            Action:
              - sts:AssumeRole
      Path: "/"

yml文件可以正常工作。它创建一个ec2实例和安全组,但不将IAM角色附加到ec2实例

克里斯·威廉姆斯

您没有将其附加到EC2资源,而是应通过EC2IamInstanceProfile属性添加它

该值应为 !Ref ListS3BucketsInstanceProfile

实例配置文件将永远不会自动附加到实例。

webserver:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupName: sg-webserver
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIp: 0.0.0.0/0
          Description: For traffic from Internet
      GroupDescription: Security Group for demo server
      VpcId: !Ref VPC
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      AvailabilityZone: us-east-2a
      BlockDeviceMappings:
        - DeviceName: /dev/xvda
          Ebs:
            DeleteOnTermination: "true"
            VolumeSize: "8"
            VolumeType: gp2
      ImageId: ami-0bdcc6c05dec346bf
      InstanceType: t2.micro
      IamInstanceProfile: !Ref ListS3BucketsInstanceProfile
      KeyName: key-webserver
      NetworkInterfaces:
        - Description: Primary network interface
          DeviceIndex: 0
          SubnetId: !Ref SubnetA
          GroupSet:
            - Ref: webserver
  ListS3BucketsInstanceProfile:
    Type: AWS::IAM::InstanceProfile
    Properties:
      Path: "/"
      Roles:
        - Ref: S3FullAccess
  ListS3BucketsPolicy:
    Type: AWS::IAM::Policy
    Properties:
      PolicyName: ListS3BucketsPolicy
      PolicyDocument:
        Statement:
          - Effect: Allow
            Action:
              - s3:List*
            Resource: "*"
      Roles:
        - Ref: S3FullAccess
  S3FullAccess:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - ec2.amazonaws.com
            Action:
              - sts:AssumeRole
      Path: "/"

有关实例配置文件的更多信息,请查看此链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在cloudformation模板中指定lambda函数和IAM角色名称

将多个IAM角色与CloudFormation中的AWS :: IAM :: InstanceProfile关联

在AWS CodeBuild worker上使用IAM角色

CloudFormation IAM角色-AssumeRolePolicyDocument

您如何使用CloudFormation将IAM角色与Aurora群集相关联?

如何使用Terraform将多个IAM策略附加到IAM角色?

无法仅使用CloudFormation创建IAM策略

cloudformation模板以使用内联策略创建IAM角色

如何仅使用Boto3创建AWS IAM角色附加托管策略

创建IAM角色并将策略附加到该角色时出错

使用IAM角色ID获取IAM角色名称

创建IAM角色并附加自定义策略

通过CloudFormation将默认KMS密钥的使用授予IAM角色

具有和不具有RoleName参数的Cloudformation AWS IAM角色

在CloudFormation模板中使用现有角色

如何使用ServiceAccount创建AWS IAM角色并将其附加到Kubernetes DaemonSet

将IAM角色从EKS中的Pod附加到Serviceaccount

将现有IAM角色与CloudFormation中的EC2实例相关联

通过cloudformation创建IAM角色时policyName中的错误

IAM CloudFormation模板AWS角色

查找 IAM 角色上次使用日期

附加 IAM 角色以执行 Lambda 函数的正确 AWS 托管策略

使用 cloudFormation 将角色附加到现有 EC2 实例

具有附加 IAM 角色的 EC2 实例的 AccessDenied

cloudformation 堆栈使用的 IAM 角色

使用 terraform 和 apex 将单个 IAM 策略附加到两个不同区域(同一账户)中的两个不同角色

CloudFormation 角色使用 QueuePolicy Ref 作为 IAM 角色资源中的 ManagedPolicy?

使用 Ansible 将 IAM 角色附加到 AWS RDS 实例

无法从附加了 IAM 角色的 Windows Server 下载 CodeDeploy 代理