0

我知道这听起来像是一个基本问题,但我还没有弄清楚该怎么做。

我们正在努力建立一个测试环境,用于筛选云工程师和大数据面试的候选人。

我们正在研究可能使用 Cloudformation 服务创建按需 AWS 环境,并测试用户是否能够在环境中执行特定任务,例如使用 boto3 创建 s3 存储桶、分配角色、创建安全组等。

但是一旦筛选完成,我们希望自动拆除之前创建的整个设置。

可能有多个考生同时参加考试。我们想要创建环境(可能包含其他用户不可见的 ec2 实例、s3 存储桶等)并在测试完成后拆除它们。

我们考虑使用 IAM 角色为每个候选人动态创建 IAM 用户,并自动创建堆栈并在测试完成后删除这些用户。

但是,我认为用户将能够看到其他用户创建的资源,这不是我们所期望的。

我们可以使用其他更好的方法来创建这些环境或实验室并为用户删除它们吗?诸如 ITversity 和 Qwiklabs 之类的东西。

登录用户应该有权访问和查看仅为他创建的资源。

请建议。

查询 1: 假设我创建了 10 个IAM roles使用和一个用户使用这些角色中的每一个。从创建的用户IAM role 1是否能够看到由创建的另一个用户创建的VPCsEC2 instancesS3或任何其他资源IAM role 2

资源之间会完全隔离IAM role吗?

或者AWS Organizations在这种情况下,服务之类的有多大帮助?

4

3 回答 3

1

我建议查看以下 AWS 文档中的场景 3 :

在 AWS 云中设置多用户环境(用于课堂培训和研究)

它引用了“学生”环境,但它应该满足面试候选人的测试需求。

带有可选合并计费的“每个用户单独的 AWS 账户”方案为需要完全独立账户环境的用户(例如研究人员或研究生)提供了一个极好的环境。它类似于“有限用户对 AWS 管理控制台的访问”场景,只是每个 IAM 用户都创建在单独的 AWS 账户中,消除了用户影响彼此服务的风险。例如,考虑一个有 10 名研究生的研究实验室。管理员为每个链接账户创建一个付费 AWS 账户、10 个关联的学生 AWS 账户和 1 个受限 IAM 用户。管理员为每个用户预置单独的 AWS 账户并将这些账户链接到付费 AWS 账户。在每个账户中,管理员创建一个 IAM 用户并应用访问控制策略。用户可以在其 AWS 账户中访问 IAM 用户。他们可以登录 AWS 管理控制台以启动和访问不同的 AWS 服务,具体取决于应用于其账户的访问控制策略。学生看不到其他学生提供的资源。这种情况的一个关键优势是学生能够在课程完成后继续使用该帐户。例如,如果学生将 AWS 资源用作启动课程的一部分,他们可以在学期结束后继续使用他们在 AWS 上构建的内容。这种情况的一个关键优势是学生能够在课程完成后继续使用该帐户。例如,如果学生将 AWS 资源用作启动课程的一部分,他们可以在学期结束后继续使用他们在 AWS 上构建的内容。这种情况的一个关键优势是学生能够在课程完成后继续使用该帐户。例如,如果学生将 AWS 资源用作启动课程的一部分,他们可以在学期结束后继续使用他们在 AWS 上构建的内容。

https://d1.awsstatic.com/whitepapers/aws-setting-up-multiuser-environments-education.pdf

于 2019-12-24T20:45:04.933 回答
1

Qwiklabs 环境的工作方式如下:

  • 维护一个 AWS 账户池
  • 当学生开始实验室时,其中一个帐户将分配给实验室/学生
  • 启动 CloudFormation 模板以配置初始资源
  • 预置了学生登录(通过 IAM 用户或联合登录)并分配了一组有限的权限
  • 实验结束时,学生登录被删除,“收割者”删除帐户中的资源并删除 CloudFormation 堆栈

“收割者”是一系列脚本,它们递归地遍历每个区域中的每个服务,并删除在实验室期间创建的资源。使用 rebuy-de/aws-nuke 可以获得类似的功能:Nuke 整个 AWS 账户并删除其所有资源

您可以尝试自己创建这样的环境。

于 2019-12-25T00:11:58.697 回答
0

但是,我认为用户将能够看到其他用户创建的资源,这不是我们所期望的。

AWS 资源对其所有者和与所有者共享它们的人可见。
新的 IAM 用户根本不应该看到任何 AWS 资源。

于 2019-12-24T20:28:24.413 回答