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개 답변
2

안녕하세요

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

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

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

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

profile picture
답변함 3달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인