问题标签 [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.
permissions - 我应该为 S3 存储桶分配哪些权限才能使其只能从使用 IAM 角色的 EC2 实例访问?
我正在尝试设置一个 EC2 实例以访问包含一些私有数据的 S3 存储桶。我像这样设置了一个 IAM 角色:
我称这个角色为“s3_bin_download_role”
我使用以下命令启动我的 EC2 实例:
这似乎很干净。但是我还没有弄清楚如何验证这个 EC2 实例实际上在其中具有这个角色。
无论如何,一旦实例启动,我 SSH 进入机器并输入:
这给了我一个“拒绝访问”错误。
我设置了没有指定权限的 S3 存储桶。这显然是不正确的。但我不确定我需要在存储桶上指定的最小权限列表是什么,以允许此 EC2 实例上的程序读取它。
作为奖励,如果有人能告诉我如何确定 EC2 实例是否应用了特定的 IAM 角色,我将不胜感激。AWS 控制台似乎没有此信息。
编辑-
@slayedbylucifer 是对的,但细节非常混乱,所以我在这里添加细节。
令人困惑的是,您实际上可以创建 IAM 角色并立即使用这些角色启动 EC2 实例,而无需创建任何用户或组。只需使用带有 -p 标志的 ec2-run-instances(来自 cli 工具)来传递您刚刚创建的角色的名称 - 实例将以您可以通过发出以下命令来验证的角色启动 -
如果这可行,那么此实例现在将运行所有使用 aws 工具的请求,并获得该角色授予的权限。
但是,幕后发生的事情是,由于没有定义用户或组,因此用户隐含地是“root”用户或您在创建角色时登录到管理控制台的任何人。因此,创建但不分配角色并不意味着没有人有权访问 - 如果角色授予访问权限,则由创建者启动的 ec2 实例具有访问权限。
因此,现在您所要做的就是转到 S3 管理控制台并为您自己授予存储桶权限。就是这样。
此外,您实际上可以使用 curl 来检索 S3 对象,即使它们不是公开的 - 但是,由于它不是 aws 工具,因此您需要使用像 s3 这样的工具的请求显式传递 hmac'ed aws 令牌 - curl.pl 会为你做的。
amazon-web-services - AWS IAM 访问管理
我知道您可以设置 IAM 策略来限制对服务的访问。但是,是否可以设置策略以允许访问服务的一部分。
例如,我是两个 EC2 实例。我需要创建两个用户,以便他们可以访问 AWS 控制台,但每个用户只能访问一个 EC2 实例。
amazon-web-services - 如何调用 AssumeRoleWithWebIdentity 来访问 Amazon DynamoDB?
场景:
我在 Amazon 上创建了一个应用程序,并使用Login with Amazon,它返回一个“access_token”。然后我运行:
当我稍后运行该ListTable
函数时,它将返回:
我发现似乎我必须打电话AssumeRoleWithWebIdentity
。但是如何在AWS SDK for JavaScript中调用它?还是我错过了其他任何过程?
python - Boto 403 AccessDenied 异常与 IAM 用户凭证,在 Cyberduck 和 AWS Web 控制台中工作
我在stackoverflow上发现了很多关于这个的问题,但没有一个能解决我的问题。经过大量谷歌搜索后,我仍然面临 AccessDenied 异常:
这是我的用户和组策略文档:
用户政策:
组策略:
使用用户名 - testuser 创建了一个用户,然后获得了该 IAM 用户的 access_key 和 secret_access_key。现在我可以使用 aws Web 控制台和 cyberduck 访问 mybucket 及其子文件夹。
但是每当我尝试使用 boto 访问时,都会出现 AccessDenied 异常(错误 403)。
博托代码:
即使我在尝试使用 boto-rsync 时也遇到了同样的问题。
有什么建议么 ??
android - 使用 Facebook 和 Google 在 Android 上进行 AWS 身份验证
我正在开发一个需要访问某些特定 AWS 资源的 Android 应用程序。用户应该能够使用 Facebook、Google 注册/登录,或创建自定义登录,并且他们应该有权访问特定的 sns 队列和特定的 s3 文件夹,具体取决于他们的身份。
有没有办法配置 AWS 来做到这一点?
amazon-web-services - AWS Amazon IAM 用户策略仅访问 EU-WEST-1 区域上的一个 EC2 实例
我已经阅读了 AWS 文档,但它没有帮助……至少对我没有帮助。我已阅读有关 IAM 和 EC2 上的用户策略的信息。
我想让用户仅在一个 ec2 实例上具有完全访问权限/(或仅允许某些操作)。
我使用的地区是eu-west-1(Ireland)。我制定了这个政策:
当我以用户身份登录时,我看到我没有被授权:
- 您无权描述正在运行的实例
- 您无权描述弹性 IP
- 您无权描述卷
- 您无权描述快照
- 您无权描述密钥对
- 您无权描述负载均衡器
- 您无权描述归置组
- 您无权描述安全组
如果我对资源属性应用以下策略:
“资源”:“arn:aws:ec2:*”
没关系,但这不是我需要的,因为用户可以访问所有 EC2 实例。
我想知道这是否是 AWS 的错误,或者 eu-west-1 区域存在问题,或者此策略已不受支持?或者也许我错了,如果是这样,请帮助我怎么做
amazon-web-services - IAM 策略仅允许 EC2 实例 API 访问以修改自身
我正在尝试设置一个在启动时配置我的实例的应用程序,并且我想尽可能地关闭该应用程序的 API 访问。我目前的政策如下:
但是,这允许应用程序对 EC2 中的任何内容执行任何这些操作。有没有办法可以将应用程序在 ec2 实例上的操作锁定到该特定实例或具有相同 IAM 角色的所有框?
amazon-web-services - 如何通过 IAM 控制用户对 Amazon DynamoDB 数据的访问?
AWS Identity and Access Management (IAM)是否提供了一种方法,使用户只能编辑或删除他之前添加的Amazon DynamoDB表中的项目?
amazon-web-services - 保护托管在 Amazon S3 上的资源的最佳方式是什么?
我正在创建一个网站,人们可以在其中注册并付费观看视频。该站点将使用 PHP 构建,并设想其工作方式如下:
- 内容创建者上传他们的内容(视频文件上传到 S3 存储桶)
- 用户可以注册,付费观看上传的视频
因此,我需要一种方法来保护每个用户的对象,这样用户就不能付费观看视频、检查 HTML 并与其他人共享视频的 URL,而其他人可以在不付费的情况下观看它。
我考虑过使用 IAM,创建一个 IAM 用户,该用户有权访问购买的视频(对象),作为我网站上的注册用户购买视频的权限,但观看来自 AWS 的介绍视频,似乎 IAM 用户更倾向于授予人们访问权限能够登录 AWS 控制台并管理我的 AWS 服务,而不是作为向 Web 服务用户授予对象权限的方法。
如果我认为 IAM 用户更适合通过控制台访问我的服务的人是正确的,那么我有哪些选项可以向我的应用程序用户授予特定权限?
amazon-web-services - S3 策略限制仅访问一个文件夹
我在 S3 中有一个名为 home 的存储桶,它下面有多个文件夹。我希望允许特定用户能够访问路径下的文件夹 1:home/A/B/folder1。但是,我不希望他看到此主存储桶中的任何其他存储桶甚至其他文件夹。
任何人都可以帮助我制定这项政策吗?