【问题标题】:How to configure AWS role on on-premise server? [closed]如何在本地服务器上配置 AWS 角色? [关闭]
【发布时间】:2019-05-23 05:57:11
【问题描述】:

我创建了一个 AWS 角色并附加了一个将对象放入 S3 存储桶的策略。

我有一个使用该角色的本地 Python 应用程序。我的个人 AWS 用户有权担任角色。这是我使用的一些代码:

assumed_role_object = sts_client.assume_role(
    RoleArn="arn:aws:iam::account-id:role/test-role",
    RoleSessionName="myRoleSession"
)

这一切正常,但现在我的问题是我必须如何在我的本地服务器上配置它,而我没有配置我的个人用户来承担该角色。

我正在考虑创建一个 IAM 用户,该用户仅具有 assumeRole 权限,并使用该用户为我的应用程序代入一个角色。

我使用test-role-trust-policy.json

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Principal": { "AWS": "arn:aws:iam::123456789012:root" },
        "Action": "sts:AssumeRole"
    }
}

并用这个创建角色:

aws iam create-role --role-name test-role --assume-role-policy-document file://test-role-trust-policy.json

将必要的策略附加到我的角色(放置 S3 对象)并在我的应用程序中使用该角色。

这是为本地服务器配置角色的正确方法吗?我觉得创建一个用户来使用我的本地服务器上的角色很奇怪(尽管现在用户的权限受到限制)。

我也不太清楚是否必须使用 root 作为主体或我的用户?

【问题讨论】:

    标签: amazon-web-services roles


    【解决方案1】:

    我认为您为这个用例创建特殊用户的方法没有任何问题。它可以是没有控制台登录并且只有承担给定角色的权限的用户。

    另一种方法是使用 lambda 创建预签名 URL。使用这些 URL,您的应用程序将能够将对象放入该存储桶中,而完全不需要 AIM 角色。该 URL 只会在您想要的时间内有效。您还可以将 URL 设计为仅允许特定文件名和其他选项。

    如果您要在另一个 AWS 资源(例如 EC2 实例)上运行它,您也可以直接为该实例赋予角色。

    【讨论】:

      猜你喜欢
      • 2012-06-04
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 2015-04-26
      • 2020-05-22
      • 2015-09-23
      • 2022-09-23
      • 1970-01-01
      相关资源
      最近更新 更多