Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 是否可以在EC2实例的用户_数据内执行`aws`cli?_Amazon Web Services_Amazon S3_Amazon Ec2 - Fatal编程技术网

Amazon web services 是否可以在EC2实例的用户_数据内执行`aws`cli?

Amazon web services 是否可以在EC2实例的用户_数据内执行`aws`cli?,amazon-web-services,amazon-s3,amazon-ec2,Amazon Web Services,Amazon S3,Amazon Ec2,我需要能够从s3 bucket复制一个tar文件,并在启动EC2实例时卸载它。 我基本上有这样一个简单的用户数据: #/bin/bash aws s3 cp s3://my-bucket/mytarfile.tar mytarfile.tar > /tmp/output 2>&1 我的实例启动后,实例上没有mytarfile.tar任何位置,并且/tmp/output包含错误消息: fatal error: Unable to locate credentials 因此,

我需要能够从s3 bucket复制一个tar文件,并在启动EC2实例时卸载它。 我基本上有这样一个简单的用户数据:

#/bin/bash
aws s3 cp s3://my-bucket/mytarfile.tar mytarfile.tar > /tmp/output 2>&1
我的实例启动后,实例上没有
mytarfile.tar
任何位置,并且
/tmp/output
包含错误消息:

fatal error: Unable to locate credentials

因此,我想不可能在EC2用户数据中使用aws命令行。

默认情况下,S3中的bucket和对象是私有的。对于能够访问它们的实例,您必须显式地允许此类访问。这是通过以下方式完成的


当具有S3权限的IAM角色附加到该实例时,AWS CLI和SDK将能够自动获取该角色提供的临时凭据来访问您的S3。

是否将实例角色/配置文件设置为该实例?否。我想这是我需要做的事?但我是个彻头彻尾的傻瓜。我该怎么做?嗯。。。对不起,AWS文档让我感到困惑。因此,我需要1)创建一个角色2)定义哪些帐户或AWS服务可以承担该角色(我猜是S3?)3)定义应用程序在承担该角色后可以使用哪些API操作和资源:(这是什么意思?@RedCricket您是如何创建实例的?使用CloudFormation?啊!我成功了。我必须创建一个策略名为“AmazonS3Fullaccess”的“配置文件”(命名为我的配置文件)(我可能可以找到一个只读策略),当我启动实例时,我选择表单中的该配置文件。@RedCricket很高兴它成功了:-)