IAP로 App Engine 앱 보안

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

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

Google Cloud에 없는 리소스를 보호하려면 온프레미스 앱 및 리소스 보호를 참조하세요.

시작하기 전에

  1. Google 계정으로 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  3. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

Cloud Shell 시작

  1. 콘솔 창 위에서 Cloud Shell 활성화를 클릭합니다.

    콘솔 하단의 새로운 프레임 내에 Cloud Shell 세션이 열리고 명령줄 프롬프트가 표시됩니다. 셸 세션이 초기화되려면 몇 초가 걸릴 수 있습니다.

    Cloud Shell 세션 프레임
  2. Cloud Shell에 다음을 입력하여 프로젝트의 프로젝트 ID를 표시합니다.
    gcloud projects list
  3. 다음 명령어를 실행하여 기본 프로젝트를 설정하세요. 여기서 YOUR-PROJECT-ID는 이 빠른 시작에 사용하려는 프로젝트 ID입니다.
    gcloud config set project YOUR-PROJECT-ID

샘플 코드 가져오기

  1. Cloud Shell에 다음 명령어를 입력하여 샘플 애플리케이션을 가져옵니다.

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    
  2. 샘플 코드가 있는 디렉토리로 변경합니다.

    cd python-docs-samples/appengine/standard/users/
    

애플리케이션 배포

  1. gcloud를 사용하여 애플리케이션을 App Engine에 배포합니다.
    gcloud app deploy
  2. target url:https://YOUR_PROJECT_ID.appspot.com 형식으로 표시됩니다. 애플리케이션에 액세스하려면 웹브라우저에서 해당 URL로 이동합니다.

IAP 사용 설정

프로젝트 선택

  1. Identity-Aware Proxy 페이지로 이동합니다.
    Identity-Aware Proxy 페이지로 이동
  2. 활성 프로젝트가 없으면 IAP로 보호할 프로젝트를 선택하라는 메시지가 표시됩니다. 샘플 애플리케이션을 배포한 프로젝트를 선택합니다.

OAuth 동의 화면 구성

프로젝트의 OAuth 동의 화면을 구성하지 않은 경우 이를 구성하라는 메시지가 표시됩니다. OAuth 동의 화면에는 이메일 주소와 제품 이름이 필요합니다.

  1. OAuth 동의 화면으로 이동합니다.
    동의 화면 구성
  2. 지원 이메일 아래에서 공개 연락처로 표시할 이메일 주소를 선택합니다. 이 이메일 주소는 개발자의 이메일 주소 또는 개발자가 소유하는 Google 그룹이어야 합니다.
  3. 표시하려는 애플리케이션 이름을 입력합니다.
  4. 원하는 선택적인 세부정보를 추가합니다.
  5. 저장을 클릭합니다.

나중에 제품 이름 또는 이메일 주소와 같은 OAuth 동의 화면의 정보를 변경하려면 앞의 단계를 반복하여 동의 화면을 구성합니다.

IAP 액세스 설정

  1. Identity-Aware Proxy 페이지로 이동합니다.
    Identity-Aware Proxy 페이지로 이동
  2. 왼쪽의 체크박스를 선택하여 수정하려는 리소스를 선택합니다. 오른쪽 패널에서 구성원 추가를 클릭합니다.
  3. 구성원 추가 대화상자에서 프로젝트에 대한 IAP 보안 웹 앱 사용자 역할을 부여하려는 그룹 또는 개인의 이메일 주소를 추가합니다.

    다음 계정 종류가 구성원이 될 수 있습니다.

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

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

  4. 구성원 추가를 마쳤으면 추가를 클릭합니다.

IAP 사용 설정 중

  1. IAP(Identity-Aware Proxy) 페이지의 HTTPS 리소스에서 액세스를 제한하려는 App Engine 앱을 찾으세요. 게시된 열에는 앱의 URL이 표시됩니다. 앱에 IAP를 사용하려면
    • IAP를 사용 설정하려면 appengine.applications.update, clientauthconfig.clients.create, clientauthconfig.clients.getWithSecret 권한이 필요합니다. 이러한 권한은 프로젝트 편집자 역할과 같은 역할에 의해 부여됩니다. 자세한 내용은 IAP 보안 리소스에 대한 액세스 관리를 참조하세요.
  2. IAP에서 애플리케이션을 보호하려면 표시되는 IAP 사용 창에서 사용을 클릭하세요. IAP를 사용하도록 설정한 후 애플리케이션에 대한 모든 연결에 로그인 사용자 인증 정보가 필요합니다.

액세스 테스트

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

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

다음 단계