You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS SCP仅允许特定OpenID Connect提供商?SCP条件失效排查

AWS SCP策略排查:允许特定OIDC提供商但条件规则未生效

我需要限制AWS账户添加新身份提供商的权限,同时通过Bitbucket Pipelines借助OpenID Connect(OIDC)安全部署应用。我创建了一条SCP策略,拒绝IAM用户的创建/删除操作以及身份提供商的增删操作,但设置了例外规则:允许所有账户创建/删除特定URL的OIDC提供商。目前这条SCP的条件规则未生效,请提供排查思路。

对应的SCP策略代码:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Statement1",
      "Effect": "Deny",
      "Action": [
        "iam:CreateGroup",
        "iam:CreateLoginProfile",
        "iam:CreateOpenIDConnectProvider",
        "iam:CreateSAMLProvider",
        "iam:CreateUser",
        "iam:DeleteAccountPasswordPolicy",
        "iam:DeleteSAMLProvider",
        "iam:UpdateSAMLProvider"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringNotEquals": {
          "iam:OpenIDConnectProviderUrl": [
            "https://api.bitbucket.org/2.0/workspaces/my-workspace-name/pipelines-config/identity/oidc"
          ]
        }
      }
    }
  ]
}

排查思路

  • 拆分操作与条件的关联:iam:OpenIDConnectProviderUrl条件键仅对iam:CreateOpenIDConnectProvider和iam:UpdateOpenIDConnectProvider生效,当前策略中混排了不支持该条件的操作(如iam:CreateUser、iam:CreateGroup等),这些操作会直接被拒绝,不受条件限制。建议将两类操作拆分到独立的Statement:
    • 一个Statement无条件拒绝不需要例外的IAM操作(创建/删除用户、组等);
    • 另一个Statement仅针对OIDC提供商的创建/更新操作,设置条件拒绝非指定URL的请求。
  • 校验OIDC URL的精确性:确认Bitbucket OIDC URL的大小写、路径参数(如my-workspace-name)完全匹配实际值,AWS条件匹配为精确匹配,任何细微差异都会导致条件不触发。
  • 确认SCP的应用范围与优先级:检查SCP是否已正确关联到目标OU或账户,且未被其他优先级更高的SCP(如允许同类操作的SCP)覆盖。
  • 单独测试权限效果:分别测试以下场景验证策略逻辑:
    • 使用指定的Bitbucket OIDC URL尝试创建提供商,确认是否允许;
    • 使用其他任意URL尝试创建OIDC提供商,确认是否被拒绝;
    • 尝试创建IAM用户,确认是否被拒绝。
  • 查看CloudTrail日志定位问题:在CloudTrail中查找对应操作的日志,检查请求参数中的url字段是否与策略一致,同时查看errorCode和errorMessage字段,获取明确的拒绝或生效失败原因。

内容的提问来源于stack exchange,提问作者kapale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 22:21:00