【发布时间】:2018-09-04 19:44:50
【问题描述】:
在安全性方面,哪个选项更适合处理 Jenkins EC2 实例、实例配置文件或具有角色的 IAM 用户的权限?
实例配置文件允许有权访问该框的任何人运行指定的 aws cli 命令。对于 IAM jenkins 用户,可以通过锁定实例上的凭证文件来限制谁能够运行 aws cli 命令。使用实例配置文件有什么好处吗?
【问题讨论】:
标签: amazon-web-services jenkins amazon-iam
在安全性方面,哪个选项更适合处理 Jenkins EC2 实例、实例配置文件或具有角色的 IAM 用户的权限?
实例配置文件允许有权访问该框的任何人运行指定的 aws cli 命令。对于 IAM jenkins 用户,可以通过锁定实例上的凭证文件来限制谁能够运行 aws cli 命令。使用实例配置文件有什么好处吗?
【问题讨论】:
标签: amazon-web-services jenkins amazon-iam
我认为在您的情况下,这两种方法是可比较的 - 请考虑当您的 IAM jenkins 用户访问密钥泄露时会发生什么(请注意,安全修复程序经常出现在 Jenkins 上):入侵者可以从他的 PC 访问 AWS API即使没有直接访问您的基础设施。因此,为避免该问题,您可能需要按照此处所述设置适当的策略:https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html 但这意味着您需要在其中硬编码您的实例 IP,这可能会在未来打击您。
另一方面,实例配置文件更具弹性,但正如您所提到的 - 当入侵者可以直接访问机器时,他可以向 AWS API 发送请求。所以我认为您需要考虑您需要什么级别的安全性以及您希望在维护该解决方案上花费多少时间。
【讨论】:
IAM 角色不能直接附加到 Jenkins 实例,因此请创建一个配置文件并在其中引用 IAM 角色,然后将该配置文件附加到您的实例。 将凭证文件传递给实例不是最佳实践。如果我加入您的公司并获得密钥的访问权,那么即使在离开公司后,我也可以访问我将来可以使用的那些密钥,前提是您不删除这些密钥,并且通常在某些情况下人们会因为以下原因而使密钥停滞不前它被多个应用程序使用。
【讨论】: