Google 계정으로 사용자 인증

이 페이지에서는 App Engine 표준 또는 가변형 환경 애플리케이션을 배포하고 IAP(Identity-Aware Proxy)로 보안을 유지하는 방법을 안내합니다. 이 빠른 시작에는 로그인된 사용자 이름을 확인하는 App Engine 표준 환경 웹 앱용의 샘플 코드가 포함되어 있습니다. 이 빠른 시작은 Cloud Shell을 사용하여 샘플 애플리케이션을 복제하고 배포합니다. 이 빠른 시작을 사용하여 자체 App Engine 표준 환경 또는 App Engine 가변형 환경 앱에 IAP를 사용 설정할 수 있습니다.

CDN(콘텐츠 전송 네트워크)에서 리소스를 제공하려는 경우, 권장사항 가이드에서 중요한 정보를 확인하세요.

App Engine 애플리케이션이 여러 서비스로 구성된 경우, 일부 서비스만 공개적으로 액세스 가능하게 만들고 다른 서비스는 보호 상태를 유지하는 등 서비스에 따라 다른 IAP 권한을 구성할 수 있습니다.


Google Cloud 콘솔에서 이 태스크에 대한 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.

둘러보기


시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

시작하기 전에

App Engine에 IAP를 사용 설정하려면 다음이 필요합니다.

  • 청구가 사용 설정된 Google Cloud 콘솔 프로젝트

App Engine 인스턴스를 아직 설정하지 않은 경우 전체적으로 둘러보려면 App Engine 배포를 참조하세요.

IAP는 Google 관리 OAuth 클라이언트를 사용하여 사용자를 인증합니다. 조직 내 사용자만 IAP가 사용 설정된 애플리케이션에 액세스할 수 있습니다. 조직 외부 사용자에게 액세스를 허용하려면 외부 애플리케이션에 IAP 사용 설정을 참조하세요.

IAP 사용 설정

콘솔

Google Cloud 콘솔을 사용하여 IAP를 사용 설정하면 Google 관리 OAuth 클라이언트를 사용할 수 없습니다.

동적 포함 파일

프로젝트의 OAuth 동의 화면을 구성하지 않았으면, 구성하라는 메시지가 표시됩니다. OAuth 동의 화면을 구성하려면 OAuth 동의 화면 설정을 참조하세요.

IAP 액세스 설정

  1. Identity-Aware Proxy 페이지로 이동합니다.
    IAP(Identity-Aware Proxy) 페이지로 이동
  2. IAP로 보호하려는 프로젝트를 선택합니다.
  3. 액세스 권한을 부여할 리소스 옆에 있는 체크박스를 선택합니다.
  4. 오른쪽 패널에서 주 구성원 추가를 클릭합니다.
  5. 표시된 주 구성원 추가 대화상자에서 프로젝트에 대한 IAP 보안 웹 앱 사용자 역할이 있어야 하는 그룹 또는 개별 사용자의 이메일 주소를 입력합니다.

    다음과 같은 종류의 주 구성원이 이 역할을 가질 수 있습니다.

    • Google 계정: user@gmail.com
    • Google Groups: admins@googlegroups.com
    • 서비스 계정: server@example.gserviceaccount.com
    • Google Workspace 도메인: example.com

    액세스 권한이 있는 Google 계정을 추가해야 합니다.

  6. 역할 드롭다운 목록에서 Cloud IAP > IAP 보안 웹 앱 사용자를 선택합니다.
  7. 저장을 클릭합니다.

IAP 사용 설정 중

  1. IAP(Identity-Aware Proxy) 페이지의 애플리케이션에서 액세스를 제한하려는 애플리케이션을 찾습니다. 리소스에 IAP를 사용하려면
  2. 표시되는 IAP 사용 창에서 사용을 클릭하여 IAP가 리소스를 보호할 것임을 확인합니다. IAP를 사용하면 부하 분산기에 대한 모든 연결에 로그인 사용자 인증 정보가 필요합니다. 프로젝트에서 IAP 보안 웹 앱 사용자 역할이 있는 계정만 액세스할 수 있습니다.

gcloud

프로젝트와 IAP를 설정하려면 최신 버전의 gcloud CLI가 필요합니다. gcloud CLI 설치 방법에 대한 자세한 내용은 gcloud CLI 설치를 참고하세요.

  1. 인증하려면 Google Cloud CLI를 사용하고 다음 명령어를 실행합니다.
    gcloud auth login
  2. 표시되는 URL을 클릭하고 로그인합니다.
  3. 로그인한 후에는 표시된 확인 코드를 복사하고 이를 명령줄에 붙여넣습니다.
  4. 다음 명령어를 실행하여 IAP로 보호하려는 애플리케이션이 포함된 프로젝트를 지정합니다.
    gcloud config set project PROJECT_ID
  5. IAP를 사용 설정하려면 다음 명령어를 실행하세요.
    gcloud iap web enable --resource-type=app-engine --versions=version
  6. IAP 보안 웹 앱 사용자 역할이 있어야 하는 주 구성원을 프로젝트에 추가합니다.
    gcloud projects add-iam-policy-binding PROJECT_ID \
           --member=PRINCIPAL_IDENTIFIER \
           --role=roles/iap.httpsResourceAccessor
    • PROJECT_ID를 프로젝트 ID로 바꿉니다.
    • PRINCIPAL_IDENTIFIER를 필요한 주 구성원으로 바꿉니다. 도메인, 그룹, serviceAccount 또는 사용자 유형일 수 있습니다. 예를 들면 user:myemail@example.com입니다.

IAP를 사용 설정한 후 gcloud CLI를 사용하여 IAM 역할 roles/iap.httpsResourceAccessor를 사용하여 IAP 액세스 정책을 수정할 수 있습니다. 역할 및 권한 관리에 대해 자세히 알아보세요.

API

  1. 다음 명령어를 실행하여 settings.json 파일을 준비합니다.

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true
      }
    }
    EOF
    

  2. 다음 명령어를 실행하여 IAP를 사용 설정합니다.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
    

IAP를 사용 설정한 후 Google Cloud CLI를 사용하여 IAM 역할 roles/iap.httpsResourceAccessor를 사용하여 IAP 액세스 정책을 수정할 수 있습니다. 역할 및 권한 관리에 대해 자세히 알아보세요.

사용자 인증 테스트

  1. 위에서 설명한 대로 IAP 보안 웹 앱 사용자 역할로 IAP에 추가한 Google 계정에서 앱 URL에 액세스합니다. 앱에 무제한 액세스 권한이 있어야 합니다.

  2. Chrome에서 시크릿 창을 사용하여 앱에 액세스하고 메시지가 나타나면 로그인합니다. IAP 보안 웹 앱 사용자 역할로 승인되지 않은 계정으로 앱에 액세스하려고 하면 '지금 액세스할 수 없습니다'라는 메시지가 나타납니다.

다음 단계