我從AWS上的無服務器開始,我正在使用AWS Cognito進行用戶身份驗證和授權。對於我在文檔和示例中看到的內容,您可以創建組以允許某些用戶能夠使用Api網關端點,並將角色和策略附加到該組。我嘗試了這一點,然後創建了一個簡單的客戶端,並嘗試使用兩個不同的用戶,並且都能夠獲得200個狀態代碼,而不是其中的一個,因爲它沒有得到授權。爲了創建角色,我去了IAM,創建角色,身份提供者訪問角色,授予對Web身份提供者的訪問權限,然後選擇Amazon Cognito並選擇我的Cognito用戶池。 信任關係:AWS Cognito組和AWS Api網關
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "cognito-identity.amazonaws.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"cognito-identity.amazonaws.com:aud": "us-east-1_8TAUVKbGP"
}
}
}
]
}
政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"my-arn-resourse-from-api-gateway"
]
}
]
}
然後我分配這個角色給我的管理組和連接相關政策的用戶添加到組,這應該允許訪問API網關資源在用戶登錄時向用戶發送。但是,當我嘗試與不在該用戶組中的用戶通信時,它仍然有效。順便說一句,在我的API網關資源請求我把認證池授權。
非常感謝!
謝謝!我會試一試,讓你知道它是怎麼回事! –