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 ...
随机推荐
- getline()的使用注意
在使用getline读入一整行时,若是前面是使用getchar().cin这类读入了一个字母,但是不会读入后续换行\n符号或者空格的输入时,再接getline()就容易出现问题. 这是因为输入数字之后 ...
- 前n项余数个数和
一:O(n) 计算贡献:前n项中,能被i(1~n)整除的数的个数为(n/i)个,,也就是 i 给前n项中(n/i)个数做了余数 #include<iostream> using names ...
- Codeforces Round #627 (Div. 3) B - Yet Another Palindrome Problem(逻辑)
题意: 问一个数组中是否存在至少长为3的回文子数组(按下标排列,可不连续). 思路: 找三个相同数或两个不连续的相同数. #include <bits/stdc++.h> using na ...
- P2617 Dynamic Rankings (动态开点权值线段树 + 树状数组)
题意:带修求区间k小 题解:回忆在使用主席树求区间k小时 利用前缀和的思想 既然是前缀和 那么我们可以使用更擅长维护前缀和的树状数组 但是这里每一颗权值线段树就不是带版本的 而是维护数组里i号点的权值 ...
- 【noi 2.5_1789】算24(dfs)
最开始我想的是全排列+枚举符号和括号的方法,但是我自己倒腾了很久还是打不对,只好向他人请教.正解很机智--直接随意将几个数"捆绑"在一起,值存在其中一个数上,其他数标记不可再选,直 ...
- Atcoder ABC162 D - RGB Triplets
传送门:D - RGB Triplets 题意:给你一个只含'R','G','B'的字符串,求有多少个长度为3且每个字符都不相等,并且第一第二和第二第三的区间长度不同的子序列. 题解:统计每个字符各 ...
- hdu5437 Alisha’s Party
Problem Description Princess Alisha invites her friends to come to her birthday party. Each of her f ...
- Codeforces Round #479 (Div. 3) D. Divide by three, multiply by two (DFS)
题意:给你一个长度为\(n\)的序列\(a\).对它重新排列,使得\(a_{i+1}=a_{i}/3\)或\(a_{i+1}=2*a_{i}\).输出重新排列后的序列. 题解:经典DFS,遍历这个序列 ...
- Zabbix 自动发现 & 自动注册
自动发现 Zabbix 为用户提供了高效灵活的网络自动发现功能,有以下优点: 加快 Zabbix 部署 简化管理 无需过多管理,也能在快速变化的环境中使用 Zabbix Zabbix 网络发现基于以下 ...
- kubernetes进阶(二)核心网络插件Flannel
网络插件Flannel介绍:https://www.kubernetes.org.cn/3682.html 首先,flannel利用Kubernetes API或者etcd用于存储整个集群的网络配置, ...