将AWS API GATEWAY限制为特定的AWS账户

时间:2019-12-04 09:53:04

标签: aws-api-gateway amazon-iam

我们想将REST API限制为特定的AWS账户。 不是帐户中的特定用户,而是帐户中的所有用户和资源。

我尝试了此资源策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "execute-api:Invoke",
            "Resource": "MY_API_ARN/*/*/*",
            "Condition": {
                "StringNotLike": {
                    "aws:userId": "*MY_ACCOUNT_NUMBER*"
                }
            }
        }
    ]
}

应该可以通过AWS账户内的lambda或EC2来访问该API,但不能从外部访问该

重要:如果可能,我希望避免将API限制为VPC。

1 个答案:

答案 0 :(得分:0)

我认为您需要尝试使用aws:SourceAccount来满足以下条件:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-east-1:*:a123456789/test/POST/mydemoresource/*",
            "Condition": {
                "StringNotEquals": {
                    "aws:SourceAccount": "a123456789"
                }
            }
        }
    ]
}