簡體   English   中英

如何使用 Cognito 拒絕訪問 API 網關上的端點

[英]How to deny access to an endpoint on API Gateway using Cognito

是否可以通過使用“拒絕”策略並將其附加到具有身份池的角色來使用 Cognito 授予用戶特定權限?

我有一個 API,我想在其中限制我的用戶池中特定用戶對某些端點的訪問。 我創建了以下策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "execute-api:Invoke"
            ],
            "Resource": [
                "arn:aws:execute-api:REGION:*:API_ID/*/*/*"
            ]
        }
    ]
}

然后,我將此策略附加到 Web 身份角色,並將此角色分配給我的用戶池中的一個組。 我將 Cognito 提供的身份令牌傳遞給 Cognito 授權方,不幸的是,即使該組中的用戶仍然可以訪問端點。

有沒有辦法僅使用 Cognito 提供的 ID 或訪問令牌為 API 授予用戶特定權限? 如果沒有,那我該怎么辦?

帶有 API 網關(使用 ID 令牌)的 Cognito Authorizer檢查分配給用戶的聲明或 IAM 策略。 如果您在向 API 發出請求時傳遞 ID 令牌,則 API 網關僅檢查 ID 令牌是否有效。 對於您的用例,您可以在 API 上啟用基於 IAM 的身份驗證或使用Lambda 授權方 在 Lambda 授權器中,您可以傳遞 Cognito 令牌,對其進行解碼並根據組信息,為特定請求生成允許或拒絕策略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM