gpt4 book ai didi

amazon-web-services - 如何在应用 AWS 策略之前验证 ARN?

转载 作者:行者123 更新时间:2023-12-04 08:03:50 27 4
gpt4 key购买 nike

我在一个配置文件中有一个来自多个账户的 ARN 列表,然后我将其构建到 S3 存储桶策略中。但是,如果这些 ARN 之一无效,例如 arn:aws:iam::12345679012:user/foo-bar ,那么在尝试应用包含该 ARN 的策略时,我将收到以下异常:
lib/aws/core/client.rb:375:in `return_or_raise': Invalid principal in policy (AWS::S3::Errors::MalformedPolicy)
如果我的文件中的任何 ARN 被删除,这似乎可能会导致问题。然后,我无法附加到现有策略。我必须找出哪个 ARN 是“毒丸”并将其删除。但是异常消息没有向我提供该信息。

问题:

  • 是否有更好的方法来管理我无法控制的大量跨账户 ARN?
  • 在将 ARN 应用于 S3 存储桶策略之前,有没有办法验证它是否存在?
  • 最佳答案

    您的问题没有指定 ruby​​,所以我将向您展示我如何使用 Python Boto3 库处理这个问题(我怀疑很糟糕)。

    尝试使用多个 ARN 更新代入角色策略时,一个或多个无效。这是产生错误的 boto 调用:

    try:
    iamClient.update_assume_role_policy(RoleName=curated_role_name, PolicyDocument=json.dumps(assume_role_policy_document))
    except botocore.exceptions.ClientError as e:
    print (e.response['Error']['Message'])

    上面代码片段的结果是:
    Invalid principal in policy: "AWS":"arn:aws:iam::42xxxxx:user/idontexist"

    然后我执行一个简单的 RE 来提取错误的 ARN,然后尝试重新应用我的更新。如果列表中仍然存在错误的 ARN,那么我会获取列表中的下一个并将其删除。这将重复进行,直到策略被接受为止。

    我正在寻找与您完全相同的东西 - “ARN 验证器”。我没有找到,所以我必须自己处理。我考虑过检查一个单独函数中涉及的所有 ARN,但由于我很少遇到这个问题,我不想招致开销。

    我希望你会发现其中的一些有用。

    戴夫欧

    关于amazon-web-services - 如何在应用 AWS 策略之前验证 ARN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34419905/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com