Amplify를 이용해서 Cognito Admin Queries를 api gateway로 사용할 때 특정 IP 대역만 접근하게 하고 싶습니다.

0

안녕하세요.

Amplify를 이용해서 서비스를 개발하고 있습니다. cognito를 이용하여 사용자를 관리하고 있는데 관리자만(id, pw, ip가 적합한 사용자) Cognito Admin Queries를 사용하려고 합니다.(사용자 조회, 사용자 추가/수정 등)

현재는 api gateway console에서 리소스정책을 수정하고, 다시 amplify push를 하면 권한(IP제한)이 적용됩니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": {리소스}
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource":  {리소스},
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": {대상 IP}
                }
            }
        }
    ]
}

걱정은 수작업이고, 방법도 비정상적으로 설정하기 때문에 이 후에 해당 제한이 풀려버릴 것 같아서 걱정입니다. push 할 때 리소스가 수정되지는 않지만, 정책을 수정해도 해당 정책은 바로 반영되지 않아서, 지금 상태가 비정상적이라고 생각되고 있습니다.

질문.

  • amplify api override를 이용하면 policies를 설정할 수 있는 것 같기는 한데 어떻게 세팅해야 할 지 모르겠습니다. 위의 리소스 정책을 반영할 방법을 알려주세요.
1 Antwort
2

안녕하세요

Amplify와 AWS Cognito를 이용하여 특정 조건에 부합한 사용자만을 관리자로 인식해 Cognito 사용자 조회/추가/수정 등의 작업을 진행하고 싶으신 것으로 이해했습니다.

다음과 같은 방법을 사용해 Cognito 기반의 관리자 로그인을 구현하실 수 있습니다.

  • Cognito를 통해 로그인한 사용자의 name, email, phone_number, birthdate, cognito:groups, cognito:roles 등의 토큰 클레임 정보를 얻을 수 있으며, 이를 통해 사용자가 관리자의 조건에 부합한지 확인하는 규칙 기반 매핑을 진행할 수 있습니다. AWS 공식 문서 (관련 링크)를 참고하시면 더 자세한 정보를 얻으실 수 있습니다.
  • 관리자 로그인에 성공했다면 해당 관리자가 어떤 AWS 서비스 권한을 사용할 수 있는지(Cognito 사용자 조회/추가/수정 등) 관련 IAM 역할을 부여할 수 있습니다. (관련 링크)

제 답변이 도움이 되셨기를 바랍니다. 감사합니다.

profile picture
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen