如何访问我的开发人员创建的 EC2?

问题描述

我的开发人员在 AWS 上创建了一个 EC2 实例,我希望能够通过我自己的仪表板访问它。

我所做的是:

  1. 作为 root 用户,我为我和他创建了一个 IAM 帐户,并将我们分配到一个名为 PowerUsers 的组
  2. 我创建了一个组织单位并将他的帐户添加到其中

当他转到他的 EC2 仪表板时,他会看到他创建的实例。但是当我转到我的 EC2 仪表板时,我什么也看不到。我们都选择了正确的地区。

我希望有人能在这里帮助我们,我似乎无法从 AWS 文档中得到任何更明智的信息。

解决方法

tl;dr 视觉访问和技术访问之间存在差异。技术是可能的,通过 IAM 角色和权限等。视觉访问是不可能的,而不是在 AWS 控制台中来自不同的账户。


通常您看不到来自您有权访问的其他帐户的资源。这根本不是 AWS / IAM 或基本上任何复杂权限系统的工作方式。

对于 S3 存储桶,您无法在 S3 控制台中看到您有权访问的 S3 存储桶,而不是对所有人公开的 S3 存储桶,也看不到您已明确授予其访问权限的 S3 存储桶。您只会看到您/您的帐户实际拥有的存储桶。

从技术角度来看,原因很简单:AWS 根本不知道您可以访问哪些存储桶/EC2 实例。它知道您的权限,如果您想访问特定资源,AWS 可以检查权限是否允许您访问它,而不是相反。

IAM 具有可以根据 IP、一天中的时间、VPC 等授予权限的权限。这使得显示您可以访问的现在变得不可能并且没有真正意义,因为在 10 秒或从一个不同的网络,你可能根本看不到它。

让我根据个人经验告诉您,目前我自己正在构建一个:如果您构建一个权限系统,它旨在回答“我可以做 X”,但列出所有 X 是一个非常不同的故事,IAM 无法回答它,我有没有遇到可以回答它,同时拥有复杂的权限结构和高效的权限系统。似乎你不能同时拥有效率、复杂性和反向查找/列表。


请注意,您仍然可以访问该资源。例如。当操纵浏览器 URL 以直接访问资源时,即使您没有登录拥有的帐户,您也可以查看它,但此时您会问“我可以做 X 吗”(X =“查看资源”)和 很容易回答。您只能列出资源。


第二个注意事项:您看到的某些列出的资源以及您的帐户拥有的资源仍然无法访问,因为可能存在针对您当前角色的明确 IAM Deny 策略,该策略仅在与资源交互时生效.

,

以下是一些选项;

  1. 更好的方法是使用,Cross-Account Access using switch roles 并参考 this

  2. 使用 Python sign-in script 的方式有点棘手。