Day 28 权限宝石:IAM Role 建立与使用

https://ithelp.ithome.com.tw/upload/images/20210929/20100951afkBYYXe9Z.jpg

今天我们要来介绍 IAM Role 的实作示范,那我们开始吧!

首先使用 Admin 登入,进入 Conole 页面搜寻 IAM 并点击,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951CHFNw2Y1PG.png

创建 IAM Role

进入之後,点左侧表 Rules,并按下 Create role 来建立一个新的 Role,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951zUQ10D0wx4.png

Step1: Select type of trusted entity

第一步,选择 Type,上方会有四个选项,除了 AWS service 以外的三个选项都是比较高阶的主题,我这边选择基础的 AWS service。

由於这次要创造 Role 的 AWS Service 是 EC2,因此 Choose a use case这边就选择 EC2,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951ebr0lnuZKV.png

Step2: Attach permissions policies

第二步则是要决定这个给 EC2 用的 Role,要有什麽权限,在这边我要给他 S3 的权限,所以搜寻 S3 并选 AmazonS3FullAccess,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951HMolrEOlpn.png

Step3: Add tags

此步骤预设即可,下一步。

Step4: Review

第四步可以给他 Role name,我叫他 ec2role-s3fullacces,在这边也可以看到在 Step2 加上去的 Policy (AmazonS3FullAccess),如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951m6aEVG0BtW.png

回到主页面後直接搜寻 ec2role,就会看到刚刚所创立的 ec2role-s3fullacces,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951doaQ6939go.png

点击 Role name 可以看到细部资讯,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951f8krO0tsi2.png

到这边,就成功建立了一个给 EC2 使用的 Role。

建立 VPC 环境

首先点左上角 Service,搜寻 VPC 并在新分页开启,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951KNuNtPycsL.png

我们首先到 AWS Console 为 EC2 创造 VPC 环境,到 VPC 页面之後按下 Launch VPC Wizard,如下图。
https://ithelp.ithome.com.tw/upload/images/20210913/20100951Dbv7JkZjQu.png

进去之後能帮我们快速建立一个环境,选择下图红圈框起的 VPC with a Single Public Subnet,我们要将 EC2 放在一个 Public Subnet 里面,然後点击 Select。
https://ithelp.ithome.com.tw/upload/images/20210913/20100951vQA9Li01vx.png

接着,给他一个 VPC name,这边我叫他 vpc-iam-demo,好的就可以按下 Create VPC,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951q150JsCAhA.png

若创建完後看到 State 呈现 availiable,就代表成功创立了,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951eiVJ5mTPNt.png

建立 EC2 Instance 并套用 IAM Role

接下来按 Service,搜寻 EC2 并点击,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951dU3RYuvS23.png

进到 EC2 页面後点左侧列表 Instances,并按下 Launch Instance,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951iAZujxDa7d.png

建立 Instance 的步骤与详细介绍可参考〖实作示范〗EC2储存资源 — EBS Volume 建立与使用 part 1,本篇只做简单介绍。

Step1: 选择 Quick Start 的第一个 Linux AMI,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951QeHJztp25g.png

Step2: Instance Type 预设即可,不做调整。

Step3: VPC 使用上面建立的(vpc-iam-demo)(图#1),并给他一个 Public IP (图#2),这边特别注意到,本篇的重点是 IAM Role,要将刚刚建议的 IAM Role 套用到这台 EC2 Instance 上面(图#3),所以选择创立的 ec2role-s3fullaccess,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951UrQRdsDr6d.png

Step4、Step5: 预设即可。

Step6: Security Group 有预设的 SSH 就够用了,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951bBTxDvCgLE.png

Step7: 按下 Launch 後 (图#1),给他一个新的 Key pair,我叫他 keypair-iam-demo-001 (图#2),记得 Download Key Pair,之後会用到。好了之後按 Launch Instnces (图#3)
https://ithelp.ithome.com.tw/upload/images/20210913/20100951CoT80FAlLP.png

按下 View Instance 後,就看到 EC2 启起来了,状态为 running (图#1),并在同一个页面下方的解释栏用滚轮往下拉,就会看到有一条 IAM Role,是我们刚刚所套用上去的,他将会给这台 EC2 Instance 去使用 S3 服务的权限(图#2)。
https://ithelp.ithome.com.tw/upload/images/20210913/20100951hBOuxHVTyE.png

开启 Terminal,cd 到下载 .pem File 的地方(我的是在 Download 资料夹里面),如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951K5Kv6E3nCZ.png

回到 EC2 页面,点 Connect (图#1),并复制 chmod 指令(图#2)
https://ithelp.ithome.com.tw/upload/images/20210913/20100951VJU0J4efMP.png

再回到 Terminal 贴上执行。
https://ithelp.ithome.com.tw/upload/images/20210913/20100951NRbtQiQPnr.png

再次回到 EC2 介面复制 SSH 指令,如下图。
https://ithelp.ithome.com.tw/upload/images/20210913/20100951brgyi17WCK.png

再回到 Terminal 贴上执行,打上 yes,看到 Amazon Linux AMI 就成功连进去这台 EC2 Instance 了,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/201009519QtAVkoGxu.png

接着要用 AWS CLI 指令的方式,来将 EC2 Instance 里面对 S3 这个服务进行使用,打上 aws s3api list-buckets,这个指令会告诉我 S3 上总共有哪些 Bucket,按下执行後会看到,这个指令成功拿了一连串的 Bucket 名称回来(目前有4个),就代表 EC2 Instance 已经有权限可以使用S3的服务了,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951Ui69d4QQVN.png

接着,我要用 aws s3api create-bucket 这个指令来让 EC2 去创建一个新的 S3 Bucket,名称我叫他 uopsdod-iam-role-demo-bucket-001,Region 使用 us-west-2 (跟 EC2 在同一个 Region 上),另外这边特别加上一个参数,LocationConstraint 也要使用 us-west-2,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/201009519L9HnQN1DA.png

执行完後,看到 Location 就代表成功建立了新的 S3 Bucket,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/201009517SUqXFiUPF.png

再使用一次 s3api list-buckets 看看 Bucket 数量是否有增加,也的确 Bucket 数量从 4 个增加到 5 个,如下图:
https://ithelp.ithome.com.tw/upload/images/20210913/20100951dDpr9KMRXO.png

最後回到 S3 Bucket,能看到确实创立出来了。
https://ithelp.ithome.com.tw/upload/images/20210913/20100951SVx9NuOnk2.png

小结

IAM Role,能让 EC2 这个服务透过 IAM Role,嵌入到 IAM 的整个服务体系之中,在这篇的实作演练中更具体来说,最後让 EC2 Instance 拥有了使用 S3 服务的权限。

那以上,是针对IAM Role的介绍。

What's Next?

那麽明天,我们将接着看到「整合宝石:【Lab】建构三层式云端架构(上)」!


<<:  学习上下文交换

>>:  Day21 vue.js网站删除特定文章

Day5 : Golang 的变数

Golang 是一种静态的语言,这个意思就是指说,当我们要产生一个 value 赋予给变数时,都需要...

Day25阵列(JavaScript)

Array阵列 简单来说 阵列就是一个有序的序列而且里面可以储存不定数量的任何值 我是把它想像成一个...

Day03 - [丰收款] 分析技术文件後,开始做个Nonce开胃菜吧!

接下来就从两大主题丰收款消费支付API与Shioaji证券API之间,挑一个来进行,既然证券开盘时间...

Day 19 - UML x Component — Independent (上)

前面把有依赖关系的 Component 都讲一讲之後,今天就来带过其他的 UI 元件吧,因为想介绍...

Day10 分页与分段的记忆体管理

前言 前几天讲完了行程管理的部分,其中有个部分讲到,所谓的ready 或者说 task_runnin...