이 페이지에서는 App Engine 표준 또는 가변형 환경 애플리케이션을 배포하고 IAP(Identity-Aware Proxy)로 보안을 유지하는 방법을 안내합니다. 이 빠른 시작에는 로그인된 사용자 이름을 확인하는 App Engine 표준 환경 웹 앱용의 샘플 코드가 포함되어 있습니다.
CDN(콘텐츠 전송 네트워크)에서 리소스를 제공하려는 경우, 권장사항 가이드에서 중요한 정보를 확인하세요.
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 액세스 설정
-
Identity-Aware Proxy 페이지로 이동합니다.
IAP(Identity-Aware Proxy) 페이지로 이동 - IAP로 보호하려는 프로젝트를 선택합니다.
- 액세스 권한을 부여할 리소스 옆에 있는 체크박스를 선택합니다.
- 오른쪽 패널에서 주 구성원 추가를 클릭합니다.
-
표시된 주 구성원 추가 대화상자에서 프로젝트에 대한 IAP 보안 웹 앱 사용자 역할이 있어야 하는 그룹 또는 개별 사용자의 이메일 주소를 입력합니다.
다음과 같은 종류의 주 구성원이 이 역할을 가질 수 있습니다.
- Google 계정: user@gmail.com
- Google Groups: admins@googlegroups.com
- 서비스 계정: server@example.gserviceaccount.com
- Google Workspace 도메인: example.com
액세스 권한이 있는 Google 계정을 추가해야 합니다.
- 역할 드롭다운 목록에서 Cloud IAP > IAP 보안 웹 앱 사용자를 선택합니다.
- 저장을 클릭합니다.
IAP 사용 설정 중
-
IAP(Identity-Aware Proxy) 페이지의 애플리케이션에서 액세스를 제한하려는 애플리케이션을 찾습니다. 리소스에 IAP를 사용하려면
- 표시되는 IAP 사용 창에서 사용을 클릭하여 IAP가 리소스를 보호할 것임을 확인합니다. IAP를 사용하면 부하 분산기에 대한 모든 연결에 로그인 사용자 인증 정보가 필요합니다. 프로젝트에서 IAP 보안 웹 앱 사용자 역할이 있는 계정만 액세스할 수 있습니다.
gcloud
프로젝트와 IAP를 설정하려면 최신 버전의 gcloud CLI가 필요합니다. gcloud CLI 설치 방법에 대한 자세한 내용은 gcloud CLI 설치를 참고하세요.
-
인증하려면 Google Cloud CLI를 사용하고 다음 명령어를 실행합니다.
gcloud auth login
- 표시되는 URL을 클릭하고 로그인합니다.
- 로그인한 후에는 표시된 확인 코드를 복사하고 이를 명령줄에 붙여넣습니다.
-
다음 명령어를 실행하여 IAP로 보호하려는 애플리케이션이 포함된 프로젝트를 지정합니다.
gcloud config set project PROJECT_ID
-
IAP를 사용 설정하려면 다음 명령어를 실행하세요.
gcloud iap web enable --resource-type=app-engine --versions=version
-
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
다음 명령어를 실행하여
settings.json
파일을 준비합니다.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
다음 명령어를 실행하여 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 액세스 정책을 수정할 수 있습니다. 역할 및 권한 관리에 대해 자세히 알아보세요.
사용자 인증 테스트
위에서 설명한 대로 IAP 보안 웹 앱 사용자 역할로 IAP에 추가한 Google 계정에서 앱 URL에 액세스합니다. 앱에 무제한 액세스 권한이 있어야 합니다.
Chrome에서 시크릿 창을 사용하여 앱에 액세스하고 메시지가 나타나면 로그인합니다. IAP 보안 웹 앱 사용자 역할로 승인되지 않은 계정으로 앱에 액세스하려고 하면 '지금 액세스할 수 없습니다'라는 메시지가 나타납니다.
다음 단계
- 액세스 수준을 적용하여 더욱 다양한 컨텍스트 규칙 설정하기
- Cloud 감사 로그 사용 설정의 액세스 요청을 참조하기
- IAP 자세히 알아보기
- 사용자 ID 가져오기에 대해 알아보고, 고유한 App Engine 앱을 개발합니다.