当前位置: 首页 > 知识库问答 >
问题:

应用AWS IAM策略后,我应该等待多长时间才能使其有效?

章兴发
2023-03-14

例如,这可能会成功,也可能不会成功(我使用的是Java1.6.6 SDK):

  1. 从可以读取特定存储桶的用户开始
  2. 清除用户策略(列出策略,然后对每个策略调用“DeleteUserPolicy”)
  3. 等待,直到用户没有用户策略(调用“ListUserPolicies”,直到它返回一个空集)
  4. 尝试从存储桶读取(这将失败)

如果我在#3和#4之间放入一个断点,等待几秒钟,用户就无法从桶中读取,这正是我所期望的。如果我移除断点,用户可以从桶中读取,这是错误的。

(请注意,我从https://forums.aws.amazon.com/thread.jspa复制了我的问题?threadid=140383&tstart=0)

共有1个答案

史洛城
2023-03-14

“几乎立即”这个短语在IAM常见问题解答中使用了5次,当然,这有些主观。

由于AWS是一个全球分布的系统,您的更改必须传播,并且系统作为一个整体似乎被设计成支持可用性和分区容忍度,而不是立即的一致性。

我不知道你是否考虑过它,但它完全在可能的范围内,实际上,在流程的第4步,你可能会看到一个顺序,通过,失败,通过,通过,失败,失败,失败,失败...因为bucket和bucket中的对象实际上都不是一个地方的一个东西,S3中不同动作的混合一致性模型就证明了这一点,其中新对象是完全一致的,而覆盖和删除最终是一致的...因此,策略对bucket或对象“有影响”或没有影响的概念并不是一个完全有意义的概念,因为策略的应用本身几乎可以肯定是一个分布式事件。

虽然您对IAM实体所做的更改会立即反映在IAMAPI中,但要在全局上反映信息可能需要相当长的时间。在大多数情况下,您所做的更改会在不到一分钟的时间内反映出来。网络条件有时会增加延迟,一些服务可能会缓存某些需要时间的非凭据信息过期并被替换。

同时该怎么做的回答是“再试一次”。

我们建议在稍有初始延迟后使用重试循环,因为在大多数情况下,您会看到您的更改很快被反映出来。如果您Hibernate,在大多数情况下,您的代码将等待太长的时间,并且可能不够长,以应付罕见的异常。

 类似资料:
  • 问题内容: 我正在使用ProcessBuilder类和Process类从Java执行一个.exe文件。解释我在做什么: 我只是想知道,“ waitFor()”等待了多长时间?是等待直到执行我的.exe,还是等到执行完成? 我的.exe是编译好的AutoIt脚本。这意味着,可能需要一些时间才能完成诸如鼠标移动之类的交互。因此,我需要知道在调用.exe之后我的Java代码执行是否继续进行,或者它是否真

  • 我应该只使用kryo吗?混合和匹配可以吗(就像我正在做的那样)?

  • 问题内容: 在服务器回答请求之前,浏览器需要等待多长时间才能显示错误?这次可以无限吗? 问题答案: 如果使用的是jQuery $ .ajax调用,则可以设置timeout属性以控制请求以超时状态返回之前的时间。超时设置为毫秒,因此只需将其设置为很高的值即可。您也可以将其设置为0(表示“无限”),但我认为您应该设置一个较高的值。 注意:“无限制” 实际上是默认设置,但大多数浏览器都有默认超时值。 当

  • 我有一个客户端anger-js应用程序。我有一个服务器端nodejs应用程序接口。客户端和服务器端应用程序位于不同的域上。客户端使用API获取或发布一些数据。客户端还需要从服务器端获取图像并在浏览器中显示它们。 我使用护照nodejs模块进行身份验证。我不知道哪种身份验证策略更适合我。我认为有两种类型的身份验证策略:基于令牌的和基于cookie的。我认为这两种类型在我的情况下都没用: > < li

  • 当我不接触任何关于CORS的东西时,浏览器会向我显示常见错误 CORS策略阻止了从源http://localhost:3000获取http://localhost:8080/denodo-testwebapp/tags的访问 但与此同时,在邮递员上做一个GET请愿书,我用所有数据来回复 但当我试图通过添加以下代码禁用CORS时: 我不再有浏览器错误,但现在,在postman上做同样的GET请愿书,

  • 我试图在这个页面上无限滚动,下面是我的代码: 因此,当我运行此程序时,它会在执行任何滚动之前等待很多秒(有时超过1分钟),然后在下次滚动之前再次等待相同的时间。代码在其他页面上似乎运行良好。有没有办法解决这个问题? 当我尝试使用Chrome而不是firefox时,会出现以下错误:添加到。py文件。