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 ...
随机推荐
- 删括号(dp)
题目链接:https://ac.nowcoder.com/acm/problem/21303 思路:删括号的时候一定要时刻保证左括号数量比右括号多,我们可以定义dp[i][j][k]表示考虑AA前i个 ...
- 2020牛客暑期多校训练营(第八场) Kabaleo Lite
传送门:Kabaleo Lite 题意 有n道菜,1≤n≤105,a[i]是每道菜可以赚的钱,−109≤ ai ≤109,b[i]是这道菜的个数,1≤bi≤105,你每次只能选从1开始连续的菜,然后问 ...
- 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest PART(10/12)
$$2017-2018\ ACM-ICPC,\ Asia\ Daejeon\ Regional\ Contest$$ \(A.Broadcast\ Stations\) \(B.Connect3\) ...
- 【洛谷 p3373】模板-线段树 2(数据结构--线段树)
题意:已知一个数列,你需要进行下面三种操作:1.将某区间每一个数加上x:2.将某区间每一个数乘上x:3.求出某区间每一个数的和. 解法:(唉 :-(,这题卡住我了......)对于加法和乘法的混合操作 ...
- zjnu1707 TOPOVI (map+模拟)
Description Mirko is a huge fan of chess and programming, but typical chess soon became boring for h ...
- 【noi 2.2_1751】分解因数(递归)
题意:问一个给定正整数的分解因数的方式数.N=a1*a2*...*ak(a1<=a2<=...<=ak). 解法:一步步分解该数,总方式数为一个个因数被分解的方案数之和. 可用大括号 ...
- Codeforces Round #135 (Div. 2) D. Choosing Capital for Treeland
time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standa ...
- 树状数组 && 板子
本文树状数组讲解转载于:https://www.cnblogs.com/xenny/p/9739600.html 本文新加内容为模板代码部分 1.什么是树状数组? 顾名思义,就是用数组来模拟树形结构呗 ...
- vi、wc、gzip、bzip2、tar、yum安装、dpek、用户信息操作等命令
命令模式 输入"dd"即可将这一行删除 按下"p"即可粘贴 插入模式: a:从光标这个位置之后插入 A:在行尾插入 i:从光标之前插入 I:行首插入 o:在光标 ...
- Centos7 搭建Nginx+rtmp+hls直播推流服务器
1 准备工具 使用yum安装git [root~]# yum -y install git 下载nginx-rtmp-module,官方github地址 // 通过git clone 的方式下载到服务 ...