通过谷歌搜索,我发现this tutorial on accessing S3 from EC2 instance without credential file。我遵循它的指示并获得了期望的实例。 aws web控制台页面看起来像 如何给ec2实例访问s3使用boto3
但是,我不想每次都使用Web控制台手动执行此操作。我如何使用boto3创建这样的EC2实例?
我试图
s = boto3.Session(profile_name='dev', region_name='us-east-1')
ec2 = s.resource('ec2')
rc = ec2.create_instances(ImageId='ami-0e297018',
InstanceType='t2.nano',
MinCount=1,
MaxCount=1,
KeyName='my-key',
IamInstanceProfile={'Name': 'harness-worker'},
)
其中harness-worker
是获得S3的IAM角色,但没有别的。 它也用于aws web控制台教程的第一种方法。
后来我有错误说
ClientError: An error occurred (UnauthorizedOperation) when calling the RunInstances operation: You are not authorized to perform this operation.
难道我显然是错误的?
dev
配置文件有AmazonEC2FullAccess。如果没有行IamInstanceProfile={'Name': 'harness-worker'},
,create_instances
能够创建实例。
对不起,我是boto3和aws的新手。你能解释一下如何解决它?谢谢。 – nos
如果您的python脚本正在使用与AWS API接口的IAM凭据,则您需要进行一些排序。这些凭证没有权限创建新的EC2实例。这不是你的代码的问题。这是您正在使用的IAM帐户或个人资料的问题。 –
开发人员配置文件具有AmazonEC2FullAccess。没有行IamInstanceProfile = {'Name':'harness-worker'},create_instances能够创建实例。 – nos