AWS Switching to an IAM role (AWS CLI)
一,引言
今天额外分享一篇 AWS 的技术内容,需要在 EC2 切换到跨账号 IAM 角色(AWS CLI)。假设我们使用两个 AWS 账户,A账号,B账号。我们希望允许 A 账号用于 "iam-role-iam-readonly" 的 AWS IAM Role 的只读权限。而 EC2 实例却位于 B 账户中。该实例包含 "iam-role-ec2" 实例配置文件角色,我们希望 “iam-role-ec2” 允许跨账户 A 中的 IAM Role 的只读权限。所有需要设置 “iam-role-ec2” 的切换角色权限,以及设置 “iam-role-iam-readonly” 的授权实体。接下啦,就正式开始我们今天的内容。
二,正文
1,添加账户A “iam-role-iam-readonly”的角色权限策略
选择 “Access managemrnt =》Roles”,点击 “Create” 创建角色

选择授信实体,我们切换到到 “Another AWS account”(Belonging to you or 3rd party)
输入可以使用此账号的ID,也就是我的值的 B 账号的ID,点击 “Next:Permissions”

权限选择 “IAMReadOnlyAccess”,并且选中所需要的权限,点击 “Next:Tags”

Add tags 是可选择的,我们不需要添加任何操作,直接点击 “Next:Review”
Review页面,我们输入相关参数
Role name:“iam-role-iam-readonly”
点击 “Create role”

创建成功后,我们可以查看到当前 “iam-role-iam-readonly” 的相关信息

2,添加账户B “iam-role-iam-ec2” 的角色权限策略
首先我们需要添加对 A 账号上的 “iam-role-iam-readonly” 的角色切线权限
选择 “Acces management=》Policy",并点击 “Create policy” 创建新的策略

切换到JSON,添加对应的切换 A 账号的 “iam-role-iam-readonly” 的权限
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowIPToAssumeCrossAccountRole",
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::xxxxxxxxxxxx:role/iam-role-iam-readonly"
}
]
}
点击 “Next:Tags”

输入Rolicy Name :“iam-pol-sts-iam-readonly”,点击“Create Policy”

创建成功后,我们在策略中找到创建好的Policy “iam-pol-sts-iam-readonly”

接下来,我们需要创建 B 账号上 EC2 使用的角色 “iam-role-ec2”,并且给当前 “iam-role-ec2” 添加刚刚创建好的切换角色的权限
选择相关参数
Select type of trusted entity:“AWS service”
Choose a use case:“EC2”
点击 “Next:Permissions”

选择附加 “iam-pol-sts-iam-readonly”,点击 “Next:Tags”

继续跳过 Add tags 页面
在 Review 页面,输入
Role name:“iam-role-ec2“ 后,点击 ”Create role“

”iam-role-ec2“ 创建成功后,可以点击查看详细信息

3,修改 A 账号角色的受信实体
先复制 B 账号 ”iam-role-ec2“ 的 Role ARN

回到 A 账号下点击 ” “ 编辑 ”iam-role-iam-readonly“ 的 Trust relationships

将刚刚复制好的 B 账号上 ”iam-role-ec2“ 角色的 arn 替换到下图圈中的位置

4,登陆 B 账号上的EC2 虚机,通过切换角色,使用AWS CLI 获取 IAM RoleId
创建EC2 虚拟机,并且赋予 "iam-role-ec2" 角色

接下来 SSH 远程登录到这台 EC2 上尝试执行AWS CLI 命令
aws iam get-role --role-name iam-role-iam-readonly
此时会提示,当前缺少安全Token,也就是我们并没有给当前账号配置 ak,sk

接下来,我们在当前 "~\.aws\config" 的文件中配置新的角色配置,并且该校色必须具有 role_arn 中指定的校色的 sts:AssumeRole 权限
打开 aws 配置文件
vim ~/.aws/config
添加新的角色配置
[profile iam-role-iam-readonly]
role_arn = arn:aws:iam::xxxxxxxxxxxx:role/iam-role-iam-readonly
credential_source = Ec2InstanceMetadata

保存并退出,再次执行aws cli 命令。这次我们在命名中加上 --profile 这个参数
aws iam get-role --role-name iam-role-iam-readonly --profile iam-role-iam-readonly

Bingo!!!,成功, 成功的运行EC2示例配置文件切换到另外的账号中的角色。
如果我们要回复 B 账号的中 EC2 原来的实例配置文件权限,可以不用在 aws cli 命令的结尾加 --profile 这个参数了。
*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
AWS Switching to an IAM role (AWS CLI)的更多相关文章
- aws在线技术峰会笔记-基于AWS的Devops最佳实践
AWS CodeCommit AWS CodePipeline 可以和github集成 可以支持蓝绿部署 微服务架构, API Gateway进行转发
- aws部署从无到有(二)windows管理aws
1 AMI正常启动后会进入下面页面 2 远程链接点击如何连接至您的 Linux 实例进入下载页 Windows下使用 PuTTY连接到 Linux 实例 http://www.chiark.green ...
- AWS Nginx Started but not Serving AWS上Nginx服务器无法正常工作
After install the Nginx on AWS instance, and visit your public ip address, you might see the followi ...
- Amazon Web Services (目录)
一.官方声明 AWS云全球服务基础设施区域列表 AWS产品定价国外区 AWS产品定价中国区 (注意!需要登陆账户才能查看) AWS产品费用预算 AWS区域和终端节点 二.计算 Amazon学习:如何启 ...
- AWS EKS 添加IAM用户角色
作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211203931498/ 相关话题:https://ww ...
- AWS S3 CLI的权限bug
使用AWS CLI在S3上创建了一个bucket,上传文件的时候报以下错误: A client error (AccessDenied) occurred when calling the Creat ...
- [Notes] AWS Automation using script and AWS CLI
(c) 2014 Amazon Web Services, Inc. and its afflialtes, All rights reserved. The content in this file ...
- AWS CLI 中使用S3存储
登录 通过控制面板, 在S3管理器中创建一个新的bucket 所有AWS服务 -> 安全&身份 -> IAM -> 组, 创建一个新的组, 例如 "s3-user& ...
- AWS系列-创建 IAM 用户
创建 IAM 用户(控制台) 官方文档 https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/introduction.html 通过 AWS ...
随机推荐
- fsck获取文件的block信息和位置信息
原文链接:lxw的大数据田地 » hdfs fsck命令查看HDFS文件对应的文件块信息(Block)和位置信息(Locations) 关键字:hdfs fsck.block.locations 在H ...
- Scala集合库、模式匹配和样例类
package com.yz8 import org.junit.Test class test { @Test def test: Unit = { val ints = List(1,5,7,6, ...
- Eclipse中配置Junit
在要使用Junit的project名上,点击properties-->Java Build Path-->Libraries,点击Add Library 选择Junit 选择Junit 4 ...
- JVM垃圾回收之三色标记
三色标记法是一种垃圾回收法,它可以让JVM不发生或仅短时间发生STW(Stop The World),从而达到清除JVM内存垃圾的目的.JVM中的CMS.G1垃圾回收器所使用垃圾回收算法即为三色标记法 ...
- UVA 10294 项链与手镯 (置换)
Burnside引理:对于一个置换\(f\), 若一个着色方案\(s\)经过置换后不变,称\(s\)为\(f\)的不动点.将\(f\)的不动点数目记为\(C(f)\), 则可以证明等价类数目为\(C( ...
- Atcoder(134)E - Sequence Decomposing
E - Sequence Decomposing Time Limit: 2 sec / Memory Limit: 1024 MB Score : 500500 points Problem Sta ...
- .Net Core 国际化
创建项目什么的就不说了吧 直接进入正题吧 我这里建的是个webapi 添加资源文件 1.首先我们创建一个Language文件夹,这就是我们在后面Startup类中需要配置的目录名. 2.然后我们在La ...
- 80行Python代码搞定全国区划代码
微信搜索:码农StayUp 主页地址:https://gozhuyinglong.github.io 源码分享:https://github.com/gozhuyinglong/blog-demos ...
- Linux 驱动框架---驱动中的异步
异步IO是对阻塞和轮询IO的机制补充,所谓异步IO就是在设备数据就绪时主动通知所属进程进行处理的机制.之所以说是异步是相对与被通知进程的,因为进程不知道也无法知道什么时候会被通知:这一机制非常类似于硬 ...
- JVM系列(三):JVM创建过程解析
上两篇中梳理了整个java启动过程中,jvm大致是如何运行的.即厘清了我们认为的jvm的启动过程.但那里面仅为一些大致的东西,比如参数解析,验证,dll加载等等.把最核心的loadJavaVM()交给 ...