使用 Terraform 从 EC2 实例访问 S3 存储桶
实验步骤
前提条件
安装 Terraform: 地址
下载仓库代码模版
本实验代码位于
task_ec2_s3connet
文件夹中。变量文件
variables.tf
在上面的代码中,您将声明,
aws_access_key
,aws_secret_key
和区域变量
。声明存储桶名称变量。
terraform.tfvars
在上面的代码中,您将定义变量的值。
main.tf
在上面的代码中,您将执行以下任务:
创建 Amazon S3 存储桶,并将
index.html
文件上传到新创建的 S3 存储桶中。创建EC2 实例,EC2 实例类型为
t2.micro
,以及 IAM 角色。而且,在
user_data
部分中,您将安装 HTTPD 并从 S3 存储桶复制index.html
文件添加安全组,授权来自端口 80,端口22 和端口 443 的入站流量,以及来自所有端口的出站流量。
创建一个 IAM 角色,该角色使用案例为 EC2 实例
将 AWS 托管 IAM 策略
AmazonSSMManagedInstanceCore
和AmazonS3FullAccess
附加到上面创建的 IAM 角色。此 IAM 策略将允许 EC2 实例在没有密钥对的情况下使用 SSH 会话管理器,并允许访问 S3 存储桶。
outputs.tf
,将输出EC2 实例的公有 IP
使用 Terraform 部署
确保您这些文件在同一位置。
通过运行以下命令初始化 Terraform:
terraform init
注意:
terraform init
将检查所有插件依赖项并下载它们。查看生成计划,请运行以下命令:
terraform plan
创建在
main.tf
配置文件中声明的所有资源 ,请运行以下命令:
terraform apply
您将能够看到将要创建的资源,通过输入
yes
批准所有资源的创建。
terraform apply
命令最多可能需要 2 分钟才能创建资源。
通过 AWS 控制台使用会话管理器将 SSH 连接到 EC2 实例
确保您位于美国东部(弗吉尼亚北部)us-east-1 区域。
通过单击 AWS 控制台顶部导航到 EC2。
左侧面板,单击"实例"。
注意:如果您没有看到 EC2 实例,或者看到 EC2 实例处于“正在运行”以外的任何其他状态。这意味着资源仍在创建中。请等待几分钟,直到环境准备就绪。
选择存在的 EC2 实例,然后单击连接按钮。
切换到“会话管理器”选项卡,然后单击“连接”按钮。
片刻之后,会话管理器已连接到 EC2 实例。
运行第一个命令以列出所有 S3 存储桶。并且,复制存储桶名称。
aws s3 ls
使用存储桶名称列出其对象。
aws s3 ls s3://<Bucket-Name>