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

如何编写单条IAM策略实现API密钥标签的OR条件访问控制

问题描述

我拥有一个API密钥,希望仅当该密钥包含以下任一标签键值对时,允许开发者查看其密钥值:

# 满足任一标签即可允许访问
app: demo
OR
default:true

当前使用的IAM策略语句如下,它的评估逻辑是key1:value1 AND key2:value2——仅当API密钥同时具备两个对应标签时才允许访问,不符合我的需求:

- Effect: Allow
  Action: apigateway:GET
  Resource: arn:aws:apigateway:us-east-1::/apikeys/*
  Condition:
    StringEquals:
      aws:ResourceTag/app:
        - "${aws:PrincipalTag/app}"
      aws:ResourceTag/default:
        - "true"

请问如何用单条策略语句实现key1:value1 OR key2:value2的逻辑?

解决方案

要在单条IAM策略中实现OR逻辑,你需要使用IAM条件的Or运算符,将两个独立的StringEquals判断条件包裹起来。修改后的策略如下:

- Effect: Allow
  Action: apigateway:GET
  Resource: arn:aws:apigateway:us-east-1::/apikeys/*
  Condition:
    Or:
      - StringEquals:
          aws:ResourceTag/app: "${aws:PrincipalTag/app}"
      - StringEquals:
          aws:ResourceTag/default: "true"

该策略的评估规则为:

  • 若API密钥的app标签值与请求者的app主体标签值匹配,允许访问
  • 若API密钥的default标签值为true,允许访问
    只要满足上述两个条件中的任意一个,就会授予apigateway:GET权限以查看API密钥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:30:51