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

如何修改AWS SCP,允许服务间API调用且仅放行公司IP访问

解决方案:修改SCP排除AWS服务发起的调用

当前SCP会拦截非公司IP且来自SSO角色的调用,但同时误拦截了AWS服务间的API调用(如SageMaker访问S3),原因是这些服务间调用的来源IP可能不在公司IP列表中,且需要明确排除由AWS服务自身发起的请求。

你需要在原策略的Condition中添加aws:PrincipalIsAWSService条件,确保仅当调用不是由AWS服务发起时,才会触发Deny规则。修改后的完整策略如下:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "RestrictaccessIP",
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "NotIpAddress": {
          "aws:SourceIp": [
            "IP1",
            "IP2"
          ]
        },
        "StringLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::*:role/aws-reserved/sso.amazonaws.com/*"
          ]
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "false"
        }
      }
    }
  ]
}

关键说明:

  • aws:PrincipalIsAWSService是AWS提供的条件键,当请求由AWS官方服务(如SageMaker、Lambda等)发起时,该值为true。添加这个条件后,只有当请求不是AWS服务发起的,且同时满足来源IP不在公司列表、主体是SSO角色时,才会执行Deny。
  • 如果你还需要允许VPC内部资源(如EC2、ECS容器)发起的调用(这些请求的来源IP是VPC私有IP,不在公司公网IP列表中),可以额外添加StringNotExists条件判断aws:SourceVpc是否存在,例如:
    "StringNotExists": {
      "aws:SourceVpc": "*"
    }
    
    这样VPC内部的请求会被排除在Deny规则之外。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:50:28