问题标签 [amazon-policy]

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 回答
69 浏览

amazon-web-services - 如何编写可由其他账户承担但根据承担角色的账户授予不同权限的 AWS 策略?

我有 2 个 ID 为 111111 和 222222 的 AWS 账户,我正在尝试以下操作

  • 两个账户都应该通过扮演相同的角色来访问 AWS
  • 假定角色授予每个访问权限以读取/写入帐户 111111 上的 s3 存储桶
  • 帐户 111111 可以在任何地方写,但/production/*
  • 帐户 222222 只能写入/production/*

我创建了在账户 111111 上调用的 s3 存储桶myBucket,并在其中设置了以下存储桶策略

然后我使用以下 IAM 策略在账户 111111 上创建一个用户

以上内容应该足以让账户 111111 担任该角色并能够写入/myBucket/*except /myBucket/production/*,这工作正常。

当帐户 222222 担任该角色时,问题就出现了。它能够做与帐户 111111(写入/myBucket/*except /myBucket/production/*)相同的事情,这不是本意。

我怀疑这里的问题是一旦帐户 222222 担任该角色,它似乎来自同一个帐户,但我不确定。

在这种情况下如何识别源帐户,以便我可以在帐户 222222 上设置策略,即使它已在帐户 111111 上担任角色?

0 投票
1 回答
110 浏览

amazon-web-services - 如果策略限制实例创建,则在 EC2 控制台上显示用户友好消息

我编写了一个策略来强制执行两个标签 test1 和 test2。该策略限制创建没有这些标签的新实例,但它会显示一条没有任何意义的加密错误消息。可以做任何事情来在控制台上显示人类可读的消息。我知道可以使用 decode-authorization-message 命令解密此消息。但我需要在控制台上使用它。提前感谢您对此提供的任何帮助。

下面是一个显示的示例加密消息: Launch Failed 您无权执行此操作。Encoded authorization failure message: wyWMRRNJslkE3dIzT904iPcUWBkqUn7wg_Rv893pq-P6PTcp_pC3E8SU-POmDKIn_eQQ4IuRbK6JI7PyjPRpxiY8xkFGUDVk-f1nQeCLRMFmLpHals4tim5udAPqQ7uVV2Wl2yKzvq0V5p82ih_YII0y1lPh5QsUIMOfgdBiaJ0tkm5M91VYRGbbOaQtrcoHTyNEhMg2GSB-0Gtr887nrUwtJ8i7pWNNNjP4NuxR3C93fhRQB9TeDqf5NjTTQxLrjf3TqFn5YXJ16Bdd7G9973meAJIc-NEXeCzDzrEAJkqQAHX5gxFi3Iy58OlIxwWo4hjWxYkA71wpg0wMu-tUGt2v-i70ic2p31CKl3eGa1uOSNaRI87dz2danSv6mvMz2Wb-PGs3FztwahHyyrailoJu2o1hoAEzO8T0S3b5eYps-a1NuEKwgyyy7eYznaWDFO30rXQefQS_UW1wcNoU1MYEkfrW5c5yYeZYgUtys6spcyfRu9YiP57ji3FS4CWubOWiyb78mzvgWTpuXropM3UqJO8I_iYt5b1VTN_UwjFriGedM3VmnoZ9o-iSdLl7H2oFDzk9mX3HUcLH11VIxkQnBk_jry6W1_ADbn8uPfVKszCzwpC-KhRNMZbUf33IpeOsU17hxh1UVG8eGD

0 投票
0 回答
158 浏览

amazon-web-services - IAM 的冰川政策只能完全访问他们创建的保险库?

周围有类似的问题,但似乎没有一个能直接回答我(或者我对 AWS 太陌生,无法自己连接这些点。)如果这很容易搜索,请道歉。我已经尝试了很多天了。

我想为我的 Glacier 创建一个可以分配给 IAM 用户的策略,该策略将允许任何 IAM 用户有权创建文件库,然后允许他们访问他们创建的文件库的大部分权限。(基本上都是删除)

用例/场景是这样的:我有多个 Synology NAS,分布在多个站点。我现在让他们都使用自己的 IAM 凭据备份到冰川帐户。到目前为止,一切都很好。当他们需要进行还原(甚至只是列出保管库)时,问题就变成了,他们会看到帐户中的所有保管库。我不希望他们看到其他 NAS 的保管库/备份,因为它可能会造成混淆并且与该站点无关。到目前为止,我只是自己完成所有 Glacier 操作,但这对我们来说无法扩展。(我们打算再增加大约 25 个 NASes/站点,目前运行大约 8-10 个)

我的假设是我应该能够以某种方式使用条件语句和 vaults/${userid} 的一些变体来做到这一点,但不能完全找到/得到它。

我无法在创建保管库时影响任何内容(例如添加标签),因为创建保管库的是 Synology Glacier 应用程序,因此无法对其进行修改。

我见过一些像 EC2 这样使用事后标记的解决方案。如果我可以避免它,我宁愿不走这条路,因为它涉及我们不使用的其他服务,而且我对(CloudStream(?),CloudWatch(?)我认为)知之甚少。

我还考虑了多个关联帐户,如果这是唯一的方法,那么我会这样做,但无法将保险库移动到新帐户 - 这意味着必须为这 8 个帐户重新开始 - 这是一个不太有吸引力的选择。

似乎这方面的政策应该很容易。希望是这样,而且只需点击几下我目前的政策写作技巧。

0 投票
2 回答
623 浏览

amazon-s3 - AWS IAM 策略:按用户/角色限制存储桶/文件夹访问?

我正在尝试按角色限制用户仅访问 S3 存储桶中的特定文件夹。可以说,存储桶被配置为“模拟可挂载”,这样我们就可以将它用于文件共享,就好像它是一个更传统的服务器一样。每个用户都在使用 CloudBerry 远程访问 S3。

这是我当前的(损坏的)策略,存储桶名称是“bluebolt”。

}

所以,我想做的是限制用户仅列出/读取/写入“/Production and Processing/[UserName]”中的内容,同时能够列出/读取“/Company Shared”中的所有内容,同时明确禁止对“/Management”的所有访问权限以及“/Production and Processing/*”中的所有内容,但其用户文件夹除外。理想情况下,用户只会在 bluebolt 中看到“/Company Shared”和“/Production and Processing”,一旦他们进入“/Production and Processing”,他们只会看到他们的用户名文件夹,即他们的工作区。

现在,一旦用户在 bluebolt 顶级存储桶下方挖掘,我就会得到零星的访问权限(“您无权访问”)。

我不知道这个用例是否常见,或者我是否试图将太方的钉子放入圆孔中,但欢迎并非常感谢任何反馈/提示/类似的政策应用程序/严厉的批评!

0 投票
1 回答
6340 浏览

amazon-web-services - Allow lambda to access particular s3 bucket in serverless config

How can I allow specific lambda to access to a particular s3 bucket in the serverless.yml?

For example, I am porting file upload functionality to lambda by using serverless. To upload a file to a particular s3 bucket, I need to allow lambda to access to that s3 bucket. How can I do this in the serverless.yml?

0 投票
1 回答
870 浏览

amazon-web-services - CloudFormation 嵌套模板能否在没有预签名 URL 的情况下访问私有 S3 对象?

在 Cloudformation 中,嵌套模板必须向 S3 对象提供 https:// URL。似乎不支持 s3:// URL。

堆栈模板参数

除了使用预签名 URL 之外,嵌套堆栈是否可以使用没有公共读取 ACL 的 S3 对象?

请注意,从这个相关问题中也可以看出,预签名的 URL 有时也不是一个可行的选项,但该问题已得到解决。但是,预签名 URL 的最长 1 周到期仍然令人反感,因为可能需要重新生成嵌套堆栈的 URL 以供将来更新。

如何在 CloudFormation 中将签名的 S3 URL 指定为模板?

0 投票
1 回答
117 浏览

amazon-s3 - AWS S3 试图了解授予策略的权限

我正在尝试创建一个策略以供部署在 ECS 中的应用程序使用,以获取存储桶内的一些文件。我正在创建的策略如下所示:

但是我在尝试将文件上传到存储桶时仍然遇到访问被拒绝错误,我已经看到了一些 AWS 示例,其中人们将策略中的资源定义为:

请注意 /* 。

所以我的问题是我应该什么时候使用 /* 什么时候不应该使用它(我应该使用它的权限)。

0 投票
1 回答
1490 浏览

node.js - 为什么将图像上传到 s3 会出现 AuthorizationQuery 错误?

我尝试将 jpeg 图像上传到s3 存储桶,我成功获得了预签名 URL,没有任何错误,但是当我尝试使用该 URL 上传图像时,我总是得到错误。错误:

我将解释我是如何做到这一点的步骤:

1.获取签名网址:

获得 Presighn URL 后,我尝试上传我的图片:

我在亚马逊 s3 上的存储桶策略:

桶 Cors 配置:

更新: 当我尝试输入region:'eu-west-1'时,它给了我另一个错误说:

更新 V2:我知道问题出在哪里,但我不知道为什么会这样,当我使用 pre_sign URL 而不通过护照登录时,一切正常,但是当我使用护照 JWT 登录时,我收到SignatureDoesNotMatch错误。

0 投票
0 回答
558 浏览

amazon-web-services - 来自账户拥有的任何存储桶的 S3 跨账户通知

我正在向拥有自己的 AWS 账户的客户提供跨账户服务。我希望他们能够配置他们拥有的任何 S3 存储桶,以便将任何ObjectCreated事件记录到我的 SQS 队列中。我还想阻止任何其他方写入我的队列,或配置他们的存储桶以将对象通知写入我的队列。

到目前为止,我有这个许可文件。(我的 accountId: 222222222222,我客户的 accountId: 111111111111

这允许他们的一个桶写入我的队列;但是,我想允许他们的任何存储桶写入我的队列。通常,我只会在以客户 accountId 开头的 ARN 上使用通配符;但是,无论出于何种原因,S3 存储桶都没有区域,也没有 accountId。我有什么办法可以在权限级别进行此过滤吗?

0 投票
1 回答
905 浏览

amazon-web-services - 如何使用 SES 主体和 IAM 角色主体编写 AWS 存储桶策略

我最初设置 SES 来接收电子邮件,在此过程中,我创建了一个存储桶策略,允许该服务将电子邮件放入 S3。我现在有一个 lambda 函数,它应该能够使用 STS 承担角色并访问同一个存储桶。不幸的是,我无法找出正确的策略来允许服务和 IAM 角色访问同一个存储桶,现在我得到“拒绝访问”。我使用策略模拟器来验证其他一切是否正常运行,例如,我添加了一个通用策略,对目标角色有更多操作,如果我告诉模拟器忽略存储桶策略,那么它说它可以访问文件。

我试过有两个语句,一个将主体设置为“服务”,另一个设置为目标角色(添加两个只是为了看看是否可以工作)

我还尝试将其放入 1 个语句中:

顺便说一句,文件路径是:arn:aws:s3:::email-01-bucket/email/[file-id]

我不能放 ListBucket 因为它会引发错误。

任何帮助表示赞赏:D

让我知道我是否应该添加其他任何内容

[更新]

为了使找到正确的策略更容易,我将描述我目前在 IAM 策略模拟器中设置的内容,我假设如果我们可以让它在这里工作,那么它应该在 lambda 函数上工作。

角色:服务开发

此角色附加了两个策略。

1)服务FS:

2) AWSLambdaBasicExecutionRole

在策略模拟器中:

下拉菜单Select Service设置为S3

下拉菜单Select Action设置为GetObject

Resource>Object我输入一个现有文件的路径arn:aws:s3:::email-01-bucket/email/u245hnt85uivpfkrrlhgo0jt86gfjgnca2fgocg1(在仔细检查文件是否确实存在之后)

一旦我这样做了,现在Resource Policies左侧有一个部分显示了附加到我的存储桶的存储桶策略,其中包含以下策略:

现在这里是我迷路的地方,回到Resource>Object区域,我在其中指定现有文件的路径,有一个标记为 的复选框Include Resource Policy,如果我取消选中它,那么模拟器说权限是允许的,但是如果我选中它然后我得到以下错误: The simulation could not be performed! : Simulation failed!