amazon-web-services - 在启动时使用访问密钥初始化 AWS EC2 机器
问题描述
我想使用 aws cli 启动 EC2 机器。我想在连接之前做几件事,包括设置我的配置。
我使用以下方法成功启动了机器:
aws ec2 run-instances --image-id ami-062f7200baf2fa504 --count 1 \
--instance-type t2.micro --key-name MyFirstKey --security-group-ids \
launch-wizard-3 --user-data file://aws_setup_script.txt
我的 aws_setup_script.txt 是
sudo yum update -y
aws configure set aws_access_key_id AAAAABBBBBCCCCCDDDDD
aws configure set aws_secret_access_key AAAAABBBBBCCCCCDDDDDEEEEEFFFFFGGGGGHHHHH
aws configure set default.region us-east-1
sudo yum update -y
成功运行,但aws configure
步骤没有。
解决方案
- 在用户数据中传递秘密是不安全的。
您的脚本失败了,因为它没有运行,
ec2-user
所以它没有aws
在路径中。即使它有效,它也不会为该ec2-user
帐户配置 CLI 工具,因此它不会按照您想要的方式工作。最重要的是,有一种更好的方法可以实现这一点。您应该为实例分配一个 IAM 实例配置文件。当您在
aws
分配了 IAM 角色的实例上运行 cli 工具时,它将自动使用这些凭证。
推荐阅读
- javascript - 获取 `export {default as MyName} from './some-module';` 以使用 Jest (create-react-app)
- vue.js - 无法在 Vue 组件过滤器中访问“this”
- c# - C# 正则表达式,我可以在我的字符串上设置 MaxValue 而不是 MaxLength 吗?
- vba - 将小数格式化为百分比,对于 0,98 显示 100%
- android - Android studio - WiFi 调试 - 设备离线
- ios - 在自定义形状中设置和管理可编辑的 UITextview
- apache-spark - 为什么pyspark驱动不下载jar文件到本地存储?
- html - 使文本在父级中垂直居中,仅相对于小写字母的大小
- angular - Angular 如何从 authguard 中检索?
- java - ODBC Microsoft Access Error: Syntax error in update, delete statement