【问题标题】:AWS Multifactor Authentication and shiny-serverAWS 多因素身份验证和闪亮服务器
【发布时间】:2020-11-06 00:53:28
【问题描述】:

我在 ec2 AWS 实例上部署了一个闪亮的服务器应用程序。 本应用使用库aws.s3对s3 bucket进行读/写操作。

问题是,由于公司政策原因,我应该对 aws IAM 用户使用 MFA 身份验证。

如果我将 MFA 身份验证添加到闪亮服务器实例中使用的用户,这些将无法将数据下载/上传到存储桶 s3(权限被拒绝) 读取 s3 存储桶的 R 代码:

 Sys.setenv("AWS_ACCESS_KEY_ID" = "ACCESSKEY",
               "AWS_SECRET_ACCESS_KEY" = "SECRETACCESSKEY",
               "AWS_DEFAULT_REGION" = "REGION",
               "AWS_SESSION_TOKEN" = "")
 aws.s3::s3read_using(FUN, trim_ws = TRUE, object = "myobject")

是否有一些方法可以通过 R 下载/上传 s3 文件,我可以使用除此之外的其他方法,但我无法更改 iam 策略。

【问题讨论】:

    标签: r amazon-web-services authentication cloud shinyapps


    【解决方案1】:

    您可以在此处改进您的方法。您不应该使用 IAM 用户从 EC2 实例访问 S3,因此首先应该不需要 2 因素身份验证。

    在访问 AWS 服务时,您应该尽可能寻找 IAM 角色而不是 IAM 用户。您可以在官方文档here 中阅读更多关于不同身份的信息。

    除其他外,AWS IAM 角色会在幕后自动轮换,您无需在任何地方维护或传递 AWS 用户凭证。这意味着凭据的寿命很短,并且可以减少它们被泄露时的影响。

    您可以参考来自 AWS 知识中心的 guide,了解启动和运行它的步骤。

    【讨论】:

    • 我需要使用 R 连接到 s3。没有其他东西
    • 嘿,您仍然可以继续为此使用 R,只是对于角色,您不必提供任何凭据。 AWS 包将自动为您检索短期凭证。 IAM 角色更像是一种身份验证方法,它具有您必须自己实施的各种场景,AWS 已经为您提供了这些场景。
    • 不,您不必这样做。它们由 Boto3 自动旋转。如果您对它们的运作方式感兴趣,这里有一些见解 - boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/…
    • 这是经典的遵守规则但不遵守规则:p 无论如何,在 AWS 生态系统之外。在客户端浏览器上说,您必须使用 IAM 用户,并且在大多数情况下,MFA 用于登录控制台。因此,如果您以编程方式访问,即通过访问和密钥,它们仍然可以通过,而无需 MFA 代码。
    • 你是绝对正确的。理想情况下,您应该遵循最小特权原则,即只授予需要的东西,仅此而已。因此,在这种情况下,如果您知道 ec2 实例只会将 put 数据输入 S3,请仅授予 s3:PutObject
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2017-12-16
    相关资源
    最近更新 更多