问题标签 [amazon-iam]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1137 浏览

amazon-web-services - 我可以对 AWS IAM 用户隐藏一些托管区域吗?

我是否可以限制我的 AWS IAM 用户仅列出我希望他们使用 AWS IAM 策略看到的选定托管区域?

假设我有三个托管区域 A、B 和 C,并且我想对我的 AWS IAM 用户隐藏 A。我需要在这项政策中做哪些改变 -

0 投票
5 回答
3129 浏览

django - django-storages 对 s3 IAM 用户需要什么权限?

正如问题所问的那样,锁定的 s3 IAM 用户成功使用 django-storages 所需的最低权限是多少?目前我用过类似的东西

这实际上可能是矫枉过正。还有什么想法吗?

0 投票
1 回答
349 浏览

amazon-ec2 - 如何通过 php 使用 iam 配置文件创建亚马逊 ec2 实例?

我想知道如何使用 php sdk 创建一个新的 amazon ec2 实例,并在启动时为其提供给定角色的 IAM 配置文件。

这显然是一个新功能,因此此时现实世界的示例很少。任何帮助将不胜感激,下面来自亚马逊的链接很诱人,但跳过了使用从 SDK 分配的 IAM 配置文件实际创建实例的部分,而是使用管理控制台(这违背了整个目的,对吗?)。

http://docs.amazonwebservices.com/AWSSdkDocsPHP/latest/DeveloperGuide/php-dg-roles.html

我假设它是 run_instances 的一个选项,但我想它可以通过 IAM 对象代替?

谢谢,

R

0 投票
1 回答
4056 浏览

amazon-s3 - AWS - 在 EC2 实例启动时,boto.connect_s3() 报告“没有处理程序准备好进行身份验证”

我正在尝试创建一个引导脚本来设置 EC2 实例。我希望实例在启动期间自动从 S3 存储桶下载源代码。我最近阅读了有关将 IAM 角色分配给我的 EC2 实例的信息,以便它们可以从元数据服务器获取临时凭证。这样,我不必在我的映像上存储 AWS 凭证或在启动期间传递它们。

我编写了一个 Python 脚本,通过使用 boto 连接到 S3 来执行下载。我将该脚本连接到 init.d 配置。当我在远程 SSH 会话中手动运行它时,我的脚本工作正常,但由于某种原因,它在启动时执行时失败。

我的代码以下列方式使用 boto:

理论上,对于 boto 2.6,该代码应该联系 AWS 元数据服务器以获取基于当前 EC2 实例的 IAM 角色的临时安全凭证。

出于某种原因,在启动时,boto.connect_s3()引发了 boto.exception.NoAuthHandlerFound: “没有处理程序准备好进行身份验证。检查了 1 个处理程序。['HmacAuthV1Handler'] 检查您的凭据”。

我在 get_auth_handler 函数中将错误追溯到boto.auth 模块(引发此异常的唯一地方)。创建 HmacAuthV1Handler 对象时,如果访问密钥 id 或密钥为 None,则 HmacKeys 基类构造函数将失败。事实上,在我的脚本中进行了一些实验后,我发现如果我显式创建一个带有 name='aws' 且没有凭据的boto.provider.Provider 类的实例,则 Provider 实例的 access_key/secret_key 字段都保持为 None (但仅在启动期间;如果我之后手动运行脚本,凭据将被初始化)。然而,我知道元数据服务器不是罪魁祸首(GET 确实返回了预期的凭据,即使在启动期间也是如此)。

所以... 有什么问题吗?这可能是boto的问题吗?配置问题?还是我只是做错了什么?哎呀,是不是Ubuntu在启动时没有处于这种操作的“正确状态”?

- - 编辑 - -

感谢garnaat在下面的回答,我发现问题是python路径(sys.path)在启动期间与我的远程SSH会话期间完全不同。

启动时:

从我的 SSH 会话运行它时:

(我使用 32 位 BitNami DjangoStack 1.4.2-1 图像作为我的基础图像。)

0 投票
2 回答
2007 浏览

django - 使用 IAM 进行用户身份验证

我已经阅读了很多帖子,这些帖子涉及我认为应该是一个非常常见的用例 - 但没有找到我想要的确切内容,或者无法完成的简单原因。

我在 S3 上有一些文件。我希望能够通过我构建的前端授予某些用户访问某些文件的权限。

到目前为止,我已经使它以这种方式工作:

  • 我在 Django 中构建了前端,使用它的内置用户和组
  • 我有一个桶模型,我在其中镜像了我的 S3 桶。
  • 我有一个从组到代表 S3 权限的存储桶的 m2m 关系。
  • 用户登录并针对 Django 的用户进行身份验证。
  • 我从 Django 中获取允许用户查看的存储桶列表
  • 我使用 boto 从这些存储桶中获取指向文件的链接列表并显示给用户。

这可行,但并不理想,而且感觉也不对。我必须保留存储桶的镜像,并且我还必须维护自己的用户/密码和权限列表,因为 AWS 已经内置了所有这些。

我真正想要的是简单地在 IAM 中创建用户并使用 IAM 中的组权限来控制对 S3 存储桶的访问。没有重复的数据或功能。我的应用程序会向用户请求 UN/PW 并使用它连接到 IAM/S3 以提取存储桶和文件列表,然后向用户显示链接。简单的。

我怎么能,或者为什么我不能?

我看错了吗?

解决这个(我假设)非常常见的用例的“正确”方法是什么?

0 投票
2 回答
2605 浏览

java - 从 Java 中的 Amazon 访问密钥获取用户名

有没有办法将用户名附加到您用于通过 Java 访问 AWS 的凭证的访问密钥上?我希望能够获取在IAM 用户部分中定义的用户名,以便我可以设置特定于用户的存储桶/文件夹,然后根据访问密钥的用户名动态地将脚本指向它们(这样我就可以更改未来访问密钥,如有必要,无需更改存储桶/文件夹名称)。

0 投票
2 回答
1708 浏览

amazon-s3 - AWS S3 IAM 策略多个存储桶

我们希望在一个存储桶中创建逻辑文件夹,但不超过 100 个存储桶。假设我们只有一个 AWS 账户,我们希望将上传的文档分发到这 100 个存储桶中。对所有存储桶执行 IAM 策略的最佳实践是什么,以便让多个用户(只有文档创建者)可以查看/删除上传的文档?

谢了。

0 投票
1 回答
1719 浏览

amazon-s3 - 如何使用 IAM 角色生成经过身份验证的 S3 url?

当我拥有硬编码的访问密钥和密钥时,我能够生成经过身份验证的 url,供用户查看 S3 上的私有文件。这是通过以下代码完成的:

这给了我一些https://s3.amazonaws.com/bucket_name/path_to_file?AWSAccessKeyId=xxxxx&Expires=5555555555&Signature=eBFeN32eBb2MwxKk4nhGR1UPhk%3D的效果。不幸的是,出于安全原因,我无法将密钥存储在配置文件中。出于这个原因,我切换到 IAM 角色。现在,我使用以下方法获取密钥:

但是,这给了我错误“您提供的 AWS 访问密钥 ID 在我们的记录中不存在。”。根据我的研究,我了解到这是因为我的 IAM 密钥不是实际密钥,而是与令牌一起使用。因此,我的问题是双重的:

  1. 如何以编程方式获取令牌?似乎没有我可以使用的简单 iam 属性。

  2. 如何在签名中发送令牌?我相信我的签名最终应该看起来像 "".join(["GET\n\n\n", expiry, "\n", token, filename]),但我不知道要使用什么格式.

任何帮助将不胜感激。

0 投票
1 回答
1439 浏览

amazon-web-services - Amazon S3 对象:是否可以将公共读取策略仅限于某些 IP 地址?

A 有一个带有公共读取策略的存储桶。现在我想限制对某些对象的访问,以便只能从某些 IP 地址访问。这可能吗?

我还计划添加 CloudFront。我应该怎么做才能在每个对象上保持相同的设置?

谢谢!

0 投票
1 回答
508 浏览

amazon-sqs - 是否可以为 IAM 用户应用 SQS 限制?

我目前正在从事一个拥有大量 IAM 用户的项目,每个用户都需要对特定 SQS 队列进行有限访问。

例如,假设我有一个名为“Bob”的 IAM 用户和一个名为“BobsQueue”的 SQS 队列。我想做的是授予 Bob 管理他的队列 (BobsQueue) 的完全权限,但我想限制他的使用,这样:

  • Bob 每秒只能向 BobsQueue 发出 10 个 SQS 请求。
  • Bob 每月发出的 SQS 请求不能超过 1,000,000 个。

我本质上想对这个 SQS 队列应用任意使用限制。

有任何想法吗?