您可以使用AWS CloudFormation模板来创建EC2实例并列出IAM角色。以下是一个包含代码示例的解决方案:
AWSTemplateFormatVersion: '2010-09-09'
Resources:
EC2Instance:
Type: 'AWS::EC2::Instance'
Properties:
ImageId: ami-12345678 # 替换为您的AMI ID
InstanceType: t2.micro
SecurityGroupIds:
- sg-12345678 # 替换为您的安全组ID
SubnetId: subnet-12345678 # 替换为您的子网ID
IamInstanceProfile: !Ref IAMRole # 引用IAM角色
IAMRole:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service: ec2.amazonaws.com
Action: 'sts:AssumeRole'
Policies:
- PolicyName: ListIAMRolesPolicy
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action: 'iam:ListRoles'
Resource: '*'
在这个示例中,我们定义了一个IAM角色,并将其与EC2实例关联。IAM角色具有一个名为"ListIAMRolesPolicy"的策略,允许EC2实例执行"iam:ListRoles"操作。
请注意,您需要将代码中的AMI ID、安全组ID和子网ID替换为您自己的值。
您可以使用AWS CloudFormation控制台、AWS CLI或AWS SDK来创建并部署此CloudFormation模板。