AWS: ID 풀 구성이 잘못되었습니다.이 풀에 대해 할당된 IAM 역할 확인
사용자 풀과 아이덴티티 풀을 1개 만들었습니다.
javascript sdk를 사용한 적이 있습니다.
javascript sdk로 가입, 확인 코드 전송, 사용자 확인이 가능합니다.
단, 인증방식으로 사용자에 서명하고 아래 코드와 함께idToken을 전달하여 "CognitoIdentityCredentials"로 자격정보를 취득하려고 하면
logins[cognitoEndpoint + "/" + userPoolId] = jwtToken;
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: identityPoolId,
Logins: logins
});
아래 오류가 발생하고 있습니다.
Error: Invalid identity pool configuration. Check assigned IAM roles for this pool.
at Request.extractError (aws-sdk.js:104063)
at Request.callListeners (aws-sdk.js:106060)
at Request.emit (aws-sdk.js:106034)
at Request.emit (aws-sdk.js:105121)
at Request.transition (aws-sdk.js:104843)
at AcceptorStateMachine.runTo (aws-sdk.js:108480)
at aws-sdk.js:108492
at Request.<anonymous> (aws-sdk.js:104859)
at Request.<anonymous> (aws-sdk.js:105123)
at Request.callListeners (aws-sdk.js:106070)
ID 풀의 "Unauthenticated role" 및 "Unauthenticated role"에 대한 관리자 액세스 권한 및 자격 정보를 사용하는 사용자에게 권한을 부여했습니다.
나는 aws를 처음 본다.내가 뭘 놓쳤는지 말해줄 사람?
어떤 도움이라도 주시면 감사하겠습니다.
Cognito ID 풀(Federated Identity)에서 할당한 역할이 ID 풀과 신뢰 관계가 있는지 확인합니다.
ID 풀 ID + 작동하지 않는 역할의 이름을 가져옵니다.이 작업을 수행하려면:
- Cognito로 이동
- 연합 ID 관리 선택
- ID 풀을 선택합니다.
- ID 풀 편집(오른쪽 상단)을 클릭합니다.
- ID 풀 ID를 기록합니다.
- 작동하지 않는 역할의 이름을 기록합니다(예: Cognito_blahUnauth_Role).
IAM에서 역할에 대한 신뢰 관계를 확인합니다.StringEquals 조건 값이 ID 풀 ID와 일치하는지 확인합니다.
이 작업을 수행하려면:
- IAM으로 이동
- [역할(Roles)]을 클릭합니다.
- 이전에 메모한 역할의 이름을 누릅니다.
- 신뢰 관계를 클릭합니다.
- 오른쪽의 [Conditions]아래에서 StringEquals 조건에 앞서 메모한ID 풀 ID가 포함되어 있는지 확인합니다.
수정할 신뢰 관계를 편집합니다.
여기서 액세스하려고 하는 것은 "Cognito User Pools"와는 별도의 AWS 제품인 "Cognito Federated Identity" 자격 정보입니다.이러한 credential을 취득하려면 사용자 풀을 Federated Identity 풀에 연결해야 합니다.
이 링크가 도움이 될 수 있습니다.http://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-integrating-user-pools-with-identity-pools.html
또한 Unauthenticated permissions에서 admin access를 삭제합니다.이것은 당신의 세부사항을 가진 모든 사람이 당신의 AWS 계정을 제어할 수 있다는 것을 의미합니다.
에서 역할을 생성할 때IAMID 공급자를 선택하고 사용자 풀 ID를 선택하지 말고 ID 풀 ID를 선택해야 합니다.
OpenID를 사용하는 경우 액세스 제어 속성을 비활성화하면 오류가 사라집니다.
기존 Cognito에 수동으로 추가 역할을 추가했을 때 이 문제가 발생하였습니다.(이전에는 확장 CLI로 작성)
TLDR: 그룹 및 역할을 증폭에 사용할 경우 수동으로 생성하지 마십시오.
이 오류가 발생한 내 계정에는 해당 JWT에 다음 속성이 포함되어 있습니다(jwt.io에 접속하여 속성을 확인할 수 있습니다).
"cognito:roles": [
"arn:aws:iam::*ACCOUNT_ID*:role/*THE_ROLE*"
],
"cognito:preferred_role": "arn:aws:iam::*ACCOUNT_ID*:role/*THE_ROLE*",
그 후 다음 역할을 발견하고 조건이 올바른지 확인하려고 했습니다.
"Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-west-2:<COGNITO_IDENTITY_POOL_ID>" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } }
몇 시간 동안 역할을 확인한 후 구성 작업이 시작되었습니다.
얻은 교훈:수동으로 수리하는 것도 가능합니다.
그런 다음 작성한 Cognito에서 그룹과 관련된 역할을 수동으로 삭제하고 Amplify CLI를 사용하여 처음부터 다시 만들었습니다.그것은 마법처럼 작동했다.이와는 별도로 Amplify는 구성 변경 시에도 이러한 기능을 유지합니다.
앰프 작업 중 오류가 발생했습니다.amplify cli에서 Cognito 사용자 역할을 작성한 후 오류가 발생하였습니다.CLI에서 이러한 역할을 삭제하고 AWS Console에서 다시 생성하면 정상적으로 작동합니다.
유사한 오류가 발생했습니다. 트러스트 정책에 다음을 추가하여 해결했습니다.
주의: sts를 포함해야 합니다.이 기능을 활성화하기 전에 IAM 역할의 신뢰 정책에서 TagSession을 사용합니다.
언급URL : https://stackoverflow.com/questions/44043289/aws-invalid-identity-pool-configuration-check-assigned-iam-roles-for-this-poo
'source' 카테고리의 다른 글
| 여러 번 호출되는 UseEffect (0) | 2023.02.15 |
|---|---|
| ajax가 사용할 수 있는 websocket/socket.io의 단점은 무엇입니까? (0) | 2023.02.15 |
| 각도 루트의 htaccess 리다이렉트 (0) | 2023.02.15 |
| AJAX 요청 시 Greasemonkey 스크립트를 실행합니다. (0) | 2023.02.15 |
| 여기서 'it()' 함수는 무엇을 하고 있습니까? (0) | 2023.02.15 |
