가상 머신(VM) 인스턴스에 고정 외부 IP 주소를 할당할 수 있습니다. VM의 고정 IP 주소를 변경, 나열, 해제할 수도 있습니다. 고정 외부 IP 주소를 예약하려면 고정 외부 IP 주소 예약을 참조하세요.
외부 IP 주소는 고정 또는 임시 주소일 수 있습니다. VM에 변경되지 않는 고정 외부 IP 주소가 필요한 경우 다음을 수행합니다.
- 고정 외부 IP 주소를 가져옵니다. 새 외부 IP 주소를 예약하거나 기존 임시 외부 IP 주소를 승격하는 것도 가능합니다.
- 예약된 IP 주소를 기존 VM에 할당하거나 새 VM을 만들 때 할당합니다.
내부 Compute Engine 네트워크에 고정 IP 주소가 필요한 경우에는 대신 고정 내부 IP 주소 예약을 참조하세요.
시작하기 전에
- IP 주소에 대해 알아봅니다.
- 고정 외부 IP 주소의 할당량 및 한도에 대해 읽어봅니다.
- 외부 IP 주소 가격 책정에 대해 읽어봅니다.
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다.
로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
VM을 만들고 업데이트하려는 경우: Compute 인스턴스 관리자(v1)(
roles/compute.instanceAdmin.v1
) -
VM 인스턴스에 대한
compute.instances.update
권한 -
VM 인스턴스에 대한
compute.instances.updateNetworkInterface
권한 -
VM 인스턴스에 대한
compute.instances.addAccessConfig
권한 -
VM 인스턴스에 대한
compute.instances.deleteAccessConfig
권한 -
네트워크에 대한
compute.networks.list
- 서브넷에 대한
compute.subnetworks.use
권한 - 서브넷에 대한
compute.subnetworks.list
권한 -
VM 만들기:
- 프로젝트에 대한
compute.instances.create
권한 - 커스텀 이미지를 사용하여 VM 만들기: 이미지에 대한
compute.images.useReadOnly
권한 - 스냅샷을 사용하여 VM 만들기: 스냅샷에 대한
compute.snapshots.useReadOnly
권한 - 인스턴스 템플릿을 사용하여 VM 만들기: 인스턴스 템플릿에 대한
compute.instanceTemplates.useReadOnly
권한 - VM에 기존 네트워크 할당: 프로젝트에 대한
compute.networks.use
권한 - VM의 고정 IP 주소 지정: 프로젝트에 대한
compute.addresses.use
권한 - 기존 네트워크 사용 시 VM에 외부 IP 주소 할당: 프로젝트에 대한
compute.networks.useExternalIp
권한 - VM의 서브넷 지정: 프로젝트 또는 선택한 서브넷에 대한
compute.subnetworks.use
권한 - VPC 네트워크를 사용할 때 VM에 외부 IP 주소 할당: 프로젝트 또는 선택한 서브넷에 대한
compute.subnetworks.useExternalIp
권한 - VM에 VM 인스턴스 메타데이터 설정: 프로젝트에 대한
compute.instances.setMetadata
권한 - VM에 태그 설정: VM에 대한
compute.instances.setTags
권한 - VM에 라벨 설정: VM에 대한
compute.instances.setLabels
권한 - VM에 사용할 서비스 계정 설정: VM에 대한
compute.instances.setServiceAccount
권한 - VM의 새 디스크 만들기: 프로젝트에 대한
compute.disks.create
권한 - 기존 디스크를 읽기 전용 또는 읽기-쓰기 모드로 연결: 디스크에 대한
compute.disks.use
권한 - 기존 디스크를 읽기 전용 모드로 연결: 디스크에 대한
compute.disks.useReadOnly
권한
- 프로젝트에 대한
한 번에 하나의 리소스만 고정 외부 IP 주소를 사용할 수 있습니다.
IP 주소가 리소스에 할당되면 해당 주소가 고정 주소인지 임시 주소인지 확인할 수 있는 방법이 없습니다. IP 주소를 해당 프로젝트에 예약된 고정 외부 IP 주소 목록과 비교할 수 있습니다. 프로젝트에서 사용할 수 있는 고정 외부 IP 주소의 목록을 확인하려면
gcloud compute addresses list
하위 명령어를 사용합니다.각 VM에는 네트워크 인터페이스가 여러 개 있을 수 있으며 각 인터페이스에는 다음 IP 주소가 할당될 수 있습니다.
- 내부 IPv4 주소(필수)
- 외부 IPv4 주소
/96
IPv6 주소 범위(내부 또는 외부 중 하나)
고정 IP 주소 이름을 변경할 수 없습니다.
할당된 외부 IP 주소는 VM과 동일한 물리적 호스트에 존재하고, 라우팅, 지연 시간, 가격 책정을 포함한 모든 목적을 위해 VM과 동일한 리전에 존재합니다. 이는 인터넷 위치정보 조회 정보에 관계없이 적용됩니다.
Google Cloud 콘솔에서 IP 주소 페이지로 이동합니다.
외부 IP 주소를 클릭합니다.
모든 IP 주소를 나열하려면 다음 명령어를 사용합니다.
gcloud compute addresses list
모든 전역 IP 주소를 나열하려면 다음 명령어를 사용합니다.
gcloud compute addresses list --global
특정 리전의 모든 리전 IP 주소를 나열하려면 다음 명령어를 사용합니다.
gcloud compute addresses list \ --regions=REGION
REGION
을 주소를 나열할 리전으로 바꿉니다. 쉼표로 구분한 리전 이름을 지정하여 여러 리전의 주소를 나열할 수 있습니다.gcloud compute addresses list \ --regions=REGION1,REGION2,..REGION_n_
리전 IPv4 또는 IPv6 주소를 나열하려면
addresses.list
메서드를 호출합니다.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
다음을 바꿉니다.
PROJECT_ID
: 이 요청의 프로젝트 IDREGION
: 요청의 리전 이름
모든 리전의 모든 주소를 나열하려면
addresses.aggregatedList
메서드를 호출합니다.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses
전역 IPv4 또는 IPv6 주소를 나열하려면
globalAddresses.list
메서드를 호출합니다.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
다음을 바꿉니다.
PROJECT_ID
: 이 요청의 프로젝트 IDGoogle Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.
VM 세부정보를 지정합니다.
고급 옵션 섹션을 펼칩니다.
네트워킹 섹션을 펼칩니다.
네트워크 인터페이스 섹션에서 네트워크 인터페이스를 확장하여 수정합니다.
IPv4 주소를 할당하려면 다음 안내를 따르세요.
- 네트워크를 선택하세요.
- 외부 IPv4 주소 목록에서 IP 주소를 선택합니다.
IPv6 주소를 할당하려면 다음 안내를 따르세요.
- IPv6 서브넷이 포함된 네트워크를 선택합니다.
- 서브네트워크 목록에서 이중 스택 서브넷을 선택합니다.
- IP 스택 유형에 IPv4 및 IPv6(이중 스택)을 선택합니다.
- 외부 IPv6 주소 목록에서 새로 예약된 외부 IPv6 주소를 선택합니다. 또는 IP 주소 만들기를 선택하고 새 고정 외부 IPv6 주소를 예약합니다.
- 네트워크 서비스 등급에서 프리미엄을 선택합니다.
기본 네트워크 인터페이스 수정을 완료하려면 완료를 클릭합니다.
VM 만들기 프로세스를 계속 진행합니다.
고정 외부 IPv4 주소를 할당하려면 다음을 실행합니다.
gcloud compute instances create VM_NAME --address=IP_ADDRESS
다음을 바꿉니다.
VM_NAME
: VM의 이름IP_ADDRESS
: VM에 할당할 IP 주소 주소 이름이 아닌 예약된 고정 외부 IP 주소를 사용합니다.
고정 외부 IPv6 주소를 할당하려면 다음을 실행합니다.
gcloud compute instances create VM_NAME \ --subnet=SUBNET \ --stack-type=IPV4_IPV6 \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --ipv6-network-tier=PREMIUM \ --zone=ZONE
- Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.
- 외부 IP를 할당하려는 VM의 이름을 클릭합니다. 인스턴스 세부정보 페이지가 표시됩니다.
인스턴스 세부정보 페이지에서 다음 단계를 완료합니다.
- 수정을 클릭합니다.
- 네트워크 인터페이스를 펼칩니다.
- VM에 할당하는 데 필요한 외부 IP 주소를 선택합니다.
- 외부 IPv4 주소의 경우 임시 또는 고정 외부 IPv4 주소를 선택합니다.
- 외부 IPv6 주소의 경우 임시 또는 고정 외부 IPv6 주소를 선택합니다.
- 완료를 클릭합니다.
저장을 클릭합니다.
선택사항: 고정 외부 IP 주소를 예약합니다.
고정 외부 IP 주소를 할당하려는 경우에는 주소를 예약하고 해당 주소가 다른 리소스에서 사용되고 있지 않은지 확인해야 합니다. 필요한 경우에는 안내에 따라 새 고정 외부 IP 주소를 예약하거나 고정 외부 IP 주소를 할당 해제합니다.
임시 외부 IP 주소를 사용하려는 경우에는 이 단계를 건너 뛰고, Compute Engine이 임시 외부 IP 주소를 무작위로 할당하도록 할 수 있습니다.
고정 외부 IP 주소 할당 해제의 설명대로 기존 IP 주소 할당을 삭제합니다.
새로운 외부 IP 주소를 할당합니다.
IPv4 주소를 할당하려면
instances add-access-config
하위 명령어를 사용합니다.참고:IP_ADDRESS
를 고정 IP 주소의 이름으로 바꾸지 마세요. 실제 IP 주소를 사용해야 합니다.gcloud compute instances add-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME" --address=IP_ADDRESS
다음을 바꿉니다.
VM_NAME
: VM의 이름ACCESS_CONFIG_NAME
: 액세스 구성의 이름. 따옴표 사이에 전체 이름을 포함해야 합니다.IP_ADDRESS
: 추가할 IP 주소입니다.
고정 외부 IP 주소를 사용하는 대신 Compute Engine이 임시 외부 IP 주소를 할당하도록 하려면
--address IP_ADDRESS
속성을 생략합니다.gcloud compute instances add-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
IPv6 주소 범위를 할당하려면
instance network-interfaces update
하위 명령어를 사용합니다.gcloud compute instances network-interfaces update VM_NAME \ --network-interface==NIC \ --ipv6-network-tier=PREMIUM \ --stack-type=IPV4_IPV6 \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --zone=ZONE
다음을 바꿉니다.
VM_NAME
: VM의 이름NIC
: 네트워크 인터페이스의 이름IPV6_ADDRESS
: VM에 할당할 IPv6 주소./96
범위에서 첫 번째 IPv6 주소를 지정합니다.ZONE
: VM의 영역
고정 외부 IP 주소 할당 해제의 설명대로 기존 IP 주소 할당을 삭제합니다.
instances.deleteAccessConfig
메서드에POST
요청을 수행하여 기존 액세스 구성을 삭제하세요.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
instances.addAccessConfig
메서드에POST
요청을 수행하여 VM의 네트워크 인터페이스에 새 액세스 구성을 추가합니다.IPv4 주소의 경우 다음 요청을 수행합니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addAccessConfig { "natIP": "IPV4_ADDRESS", "name": "ACCESS_CONFIG_NAME" }
IPv6 주소의 경우
networkInterfaces[].ipv6AccessConfigs[].externalIpv6
속성과 사용하려는 외부 IPv6 주소를 업데이트합니다.
- 이 목록 제약조건은 VM에만 적용할 수 있습니다.
- 이 제약조건은 소급해서 적용할 수 없습니다. 정책을 사용 설정하기 전에 외부 IP 주소가 있는 모든 VM은 외부 IP 주소를 유지합니다.
- 이 제약조건은
allowedList
또는deniedList
를 허용하지만 동일 정책에서 둘 다 허용하지는 않습니다. - 필요한 권한이 있는 사용자 또는 관리자가 VM 수명 주기 및 무결성을 관리 및 유지보수할 수 있습니다. 이 제약조건은 VM의 URI만 확인하며, 허용 목록에 있는 VM이 변경, 삭제 또는 재생성되는 것을 방지하지 않습니다.
- 조직 정책 페이지로 이동합니다.
- 필요한 경우 프로젝트 드롭다운 메뉴에서 필요한 조직을 선택합니다.
- VM 인스턴스에 허용되는 외부 IP 정의를 클릭합니다.
- 수정을 클릭하여 외부 IP 정책을 수정합니다. 수정 도구에 액세스할 수 없으면 적절한 권한이 없는 것입니다.
맞춤설정을 선택하여 특정 VM의 조직 정책을 설정합니다.
필요한 정책 시행 및 정책 유형을 선택합니다.
정책 값에서 커스텀을 선택합니다.
VM의 URI를 입력하고 Enter를 누릅니다. URI는 다음과 같은 형식이어야 합니다.
projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
새 정책 값을 클릭하고 필요에 따라 VM의 URI를 입력합니다.
저장을 클릭하여 제약조건을 적용합니다.
PROJECT_ID
: 요청의 프로젝트 ID(예:example-project
). 이는 조직 숫자 ID가 필요한 조직 정책 설정과 다릅니다.ZONE
: VM의 영역VM_NAME
: VM의 이름PROJECT_ID
: 요청의 프로젝트 ID(예:example-project
). 이는 조직 숫자 ID가 필요한 조직 정책 설정과 다릅니다.ZONE
: VM의 영역VM_NAME
: VM의 이름이 제약조건과 함께
deniedValues
목록을 사용하지 마세요.deniedValues
목록에 값을 정의하면deniedValues
목록에 있는 VM만 외부 IP 주소 사용이 제한됩니다. 외부 IP 주소를 포함할 수 있는 VM을 정확하게 제어해야 할 경우, 이 방식은 보안상 문제가 될 수 있습니다.allowedValues
목록에서 특정 VM을 삭제하려면, VM을 하위 계층의deniedValues
목록에 넣는 대신allowedList
에서 VM을 삭제하도록 기존 정책을 업데이트합니다.리소스 계층의 대부분에 적용할 정책을 설정하되 특정 프로젝트를 제외시키려는 경우 기본 정책을 복원해야 합니다. 이때 프로젝트의 모든 VM이 외부 IP 주소와 연결될 수 있도록
restoreDefault
객체를 지정하여setOrgPolicy
메서드를 사용하면 됩니다. 프로젝트의 현재 정책은 기본 설정의 영향을 받지 않습니다.환경을 보다 효과적으로 제어하려면 조직 정책을 IAM 역할과 함께 사용합니다. 이 정책은 VM에만 적용되지만 네트워크 기기에서 외부 IP 주소를 더 효과적으로 제어하고 제한하려는 경우 적절한 당사자에게
compute.networkAdmin
역할을 부여할 수 있습니다.정책이 사용 설정된 상태로 Compute Engine에서 실행되고 있는 조직 또는 프로젝트 내의 모든 서비스 및 제품은 이 조직 정책의 영향을 받습니다. 특히 Google Kubernetes Engine, Dataflow, Dataproc, Cloud SQL 같은 서비스가 이 정책의 영향을 받습니다. 이것이 문제가 될 경우에는 조직 정책이 적용되지 않는 다른 프로젝트에서 다른 서비스 및 제품을 설정하고 필요한 경우 공유 VPC를 사용하는 것이 좋습니다.
Google Cloud 콘솔에서 IP 주소 페이지로 이동합니다.
목록에서 주소를 찾고 유형 열에서 IP 주소 유형을 확인합니다.
Google Cloud 콘솔에서 IP 주소 페이지로 이동합니다.
외부 IP 주소를 클릭합니다.
할당 해제하려는 고정 IP 주소를 선택합니다.
변경을 클릭하여 IP 주소 연결 대화상자를 엽니다.
연결 대상 드롭다운 목록에서 없음을 선택합니다.
확인을 클릭합니다.
gcloud compute addresses list
명령어를 사용하여 고정 IP 주소가 사용 중인지 확인합니다.gcloud compute addresses list
출력은 다음과 비슷합니다.
NAME REGION ADDRESS STATUS example-address-ipv4 REGION 198.51.100.1 RESERVED example-address-new-ipv4 REGION 203.0.113.1 IN_USE example-address-ipv6 REGION 2001:db8:1:1:1:1:1:1 RESERVED example-address-new-ipv6 REGION 2001:db8:4:4:4:4:4:4 IN_USE
- IP 주소가 사용 중이 아니면 상태는
RESERVED
입니다. - IP 주소가 사용 중이면 상태는
IN_USE
입니다.
- IP 주소가 사용 중이 아니면 상태는
IP 주소를 사용하는 VM의 이름을 검색합니다.
gcloud compute addresses describe ADDRESS_NAME \ --region=REGION
다음을 바꿉니다.
ADDRESS_NAME
: IPv6 주소 리소스의 이름REGION
: IPv6 주소 리소스의 리전
출력은 다음과 비슷합니다.
address: IP_ADDRESS addressType: EXTERNAL ... region: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/addresses/ADDRESS_NAME status: IN_USE subnetwork: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET users: - https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME
users
필드에 IP 주소를 사용하는 VM의 이름이 표시됩니다.VM에서 IP 주소를 할당 해제합니다.
IPv4 주소를 할당 해제하려면 VM의 액세스 구성 파일을 삭제합니다.
삭제하려는 액세스 구성의 이름을 가져옵니다. 이름을 가져오려면
gcloud compute instances describe
명령어를 사용합니다.VM_NAME
을 VM의 이름으로 바꿉니다.gcloud compute instances describe VM_NAME
액세스 구성은 다음 형식으로 표시됩니다.
networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat natIP: 203.0.113.1 type: ONE_TO_ONE_NAT
gcloud compute instances delete-access-config
명령어를 사용하여 액세스 구성을 삭제합니다.gcloud compute instances delete-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
다음을 바꿉니다.
VM_NAME
: VM의 이름ACCESS_CONFIG_NAME
: 삭제할 액세스 구성의 이름. 따옴표 사이에 전체 이름을 포함해야 합니다.
IPv6 주소 범위를 할당 해제하려면
instance network-interfaces update
명령어를 사용합니다.gcloud compute instances network-interfaces update VM_NAME \ --network-interface=nic0 \ --stack-type=IPV4_ONLY \ --zone=ZONE
다음을 바꿉니다.
VM_NAME
: IP 주소를 사용하는 VM의 이름ZONE
: VM의 영역
고정 외부 IP 주소를 사용할 수 있고
IN_USE
대신RESERVED
로 표시되었는지 확인합니다.gcloud compute addresses list \ --filter="ADDRESS_NAME AND region=REGION"
다음을 바꿉니다.
ADDRESS_NAME
: IP 주소 리소스의 이름REGION
: IP 주소 리소스의 리전
IPv4 주소의 경우 주소를 사용하는 VM에 연결된 액세스 구성을 삭제합니다.
VM의 액세스 구성 세부정보를 확인하려면
instances.get
메서드에GET
요청을 수행하세요.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
instances.deleteAccessConfig
메서드에POST
요청을 수행하여 기존 액세스 구성을 삭제하세요.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
다음을 바꿉니다.
PROJECT_ID
: 이 요청의 프로젝트 ID입니다.ZONE
: VM이 있는 영역VM_NAME
: VM의 이름
IPv6 주소의 경우 IPv6 주소가 연결된 VM에 대한 네트워크 인터페이스의 스택 유형을 업데이트합니다.
instances.updateNetworkInterface
메서드에 대해PATCH
요청을 실행합니다.요청 본문에서
stackType
필드 값을IPV4_ONLY
로 업데이트합니다.예를 들면 다음과 같습니다.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateNetworkInterface { "networkInterfaces": [{ ... "stackType" : "IPV4_ONLY" ... }] }
- IP 주소에 대해 자세히 알아보기
- 네트워크 및 방화벽에 대해 자세히 알아보기
- 내부 DNS를 사용하여 VM 주소를 지정하는 방법 알아보기
- VPC 가격 책정 살펴보기
Terraform
로컬 개발 환경에서 이 페이지의 Terraform 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
자세한 내용은 다음을 참조하세요: Set up authentication for a local development environment.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
필요한 역할
고정 IP 주소를 구성하고 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 고정 IP 주소를 구성 및 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
고정 IP 주소를 구성하고 관리하려면 다음 권한이 필요합니다.
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
제한사항
참고: 네트워크 인터페이스는 여러 전달 규칙으로부터 트래픽을 수신하며 이 전달 규칙은 다른 외부 IP 주소에도 적용될 수 있습니다. 여러 외부 IP 주소에서 이러한 전달 규칙을 통해 네트워크 인터페이스를 참조할 수 있지만 각 네트워크 인터페이스에는 외부 IPv4 주소 하나와 외부
/96
IPv6 주소 범위 하나만 할당될 수 있습니다.부하 분산 및 전달 규칙에 대한 자세한 내용은 부하 분산 문서를 읽어보세요.
사용 가능한 고정 외부 IP 주소 보기
프로젝트에 예약한 고정 외부 IP 주소를 나열하려면 다음 단계를 수행합니다.
콘솔
gcloud
gcloud compute addresses list
명령어를 사용합니다.API
Go
자바
Python
고정 외부 IP 주소 구성
다음 섹션에서는 VM에 고정 외부 IP 주소를 구성하는 방법을 설명합니다.
고정 외부 IP 주소를 사용하는 VM을 만듭니다.
고정 외부 IP 주소를 예약한 후 이를 VM에 할당할 수 있습니다.
콘솔
gcloud
VM을 만들고 이미 예약한 고정 리전 외부 IP 주소를 할당할 수 있습니다.
Terraform
google_compute_instance
리소스를 사용하여 외부 IP 주소를 할당할 수 있습니다.REST
새 VM에 고정 외부 IPv4 주소를 할당하려면 다음을 실행합니다.
새 VM 만들기 요청에서
networkInterfaces[].accessConfigs[].natIP
속성과 사용하려는 외부 IPv4 주소를 명시적으로 제공합니다. 예를 들면 다음과 같습니다.{ "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "networkInterfaces": [{ "accessConfigs": [{ "type": "ONE_TO_ONE_NAT", "name": "External NAT", "natIP": "IPV4_ADDRESS" }], "network": "global/networks/default" }], "disks": [{ "autoDelete": "true", "boot": "true", "type": "PERSISTENT", "initializeParams": { "sourceImage": "SOURCE_IMAGE" } }] }
새 VM에 고정 외부 IPv6 주소를 할당하려면 다음을 실행합니다.
새 VM 만들기 요청에서
networkInterfaces[].ipv6AccessConfigs[].externalIpv6
속성과 사용하려는 외부 IPv6 주소를 명시적으로 제공합니다. 예를 들면 다음과 같습니다.{ "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "networkInterfaces": [{ "accessConfigs": [{ "name": "external-nat", "type": "ONE_TO_ONE_NAT" }], "ipv6AccessConfigs": [{ "externalIpv6": "IOV6_ADDRESS", "externalIpv6PrefixLength": 96, "name": "external-ipv6-access-config", "networkTier": "PREMIUM", "type": "DIRECT_IPV6" }], "stackType": "IPV4_IPV6", "subnetwork":"SUBNETWORK }], "disks": [{ "autoDelete": "true", "boot": "true", "mode": "READ_WRITE", "type": "PERSISTENT", "initializeParams": { "sourceImage": "SOURCE_IMAGE" }, }], }
Go
자바
Python
외부 IP 주소 변경 또는 기존 VM에 할당
기존 VM에 대해 임시 또는 고정 외부 IP 주소를 변경하거나 할당할 수 있습니다.
VM은 여러 인터페이스를 가질 수 있고 각 인터페이스는 외부 IP 주소를 가질 수 있습니다. VM에 이미 외부 IP 주소가 있는 경우 먼저 해당 주소를 삭제해야 합니다. 그런 다음 새 외부 IP 주소를 기존 VM에 할당할 수 있습니다.
콘솔
gcloud
REST
VM의 새 액세스 구성을 추가하여 해당 VM의 외부 IPv4 또는 IPv6 주소를 변경할 수 있습니다.
Go
자바
Python
외부 IP 주소를 특정 VM으로 제한
특정 워크로드에서는 기본적인 요구사항에 따라 보안 및 네트워크 제한사항이 포함될 수 있습니다. 예를 들어 특정 VM만 외부 IP 주소를 사용하도록 제한할 수 있습니다. 이렇게 하면 데이터 무단 반출을 방지하거나 네트워크 격리를 유지하는 데 도움이 될 수 있습니다. 조직 정책을 사용하면 조직 또는 프로젝트 내에서 VM의 외부 IP 주소 사용을 제어하는 제약 조건이 포함된 특정 VM에서만 외부 IP 주소를 사용할 수 있습니다.
VM에서 외부 IP 주소 제어를 위한 제약조건은 다음과 같습니다.
constraints/compute.vmExternalIpAccess
제약조건을 사용하기 위해서는 외부 IP 주소를 포함할 수 있는 VM의
allowedList
를 사용하여 정책을 지정합니다. 정책을 지정하지 않으면 모든 VM에 대해 모든 외부 IP 주소가 허용됩니다. 정책이 적용되면allowedValues
목록에 나열된 VM에만 외부 IP 주소(임시 또는 고정)를 할당할 수 있고, 조직 또는 프로젝트에서 정책에 명시적으로 정의되지 않은 다른 Compute Engine VM은 외부 IP 주소 사용이 금지됩니다.VM은 허용 및 거부 목록에서 인스턴스의 URI를 사용하여 식별됩니다.
projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
외부 IP 주소 제한 사양
외부 IP 주소를 제한하는 데 필요한 권한
프로젝트 또는 조직 수준에서 제약조건을 설정하려면 해당 조직에서
orgpolicy.policyAdmin
역할을 부여 받아야 합니다.조직 수준에서 정책 제약조건 설정
콘솔
gcloud
외부 IP 주소에 대해 제약조건을 설정하려면 먼저 조직 ID가 필요합니다.
organizations list
명령어를 실행하고 응답에서 숫자 ID를 찾아 조직 ID를 찾을 수 있습니다.gcloud organizations list
gcloud CLI는 조직 목록을 다음 형식으로 반환합니다.
DISPLAY_NAME ID example-organization1 29252605212 example-organization2 1234567890
gcloud resource-manager org-policies set-policy
명령어를 사용하여 정책을 설정합니다. 정책을 JSON 파일로 제공해야 합니다. 다음 형식으로 JSON 파일을 만듭니다.{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } }
다음을 바꿉니다.
또는
deniedValues
목록을 지정하여 외부 IP 주소를 갖지 못하도록 명시적으로 금지할 VM을 표시할 수 있습니다. 목록에 없는 VM은 모두 외부 IP 주소를 갖도록 암시적으로 허용됩니다.allowedValues
또는deniedValues
중 하나를 지정할 수 있지만 둘 다 지정할 수는 없습니다.그런 다음 요청을 사용해서 파일을 전달합니다.
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --organization=ORGANIZATION_ID
ORGANIZATION_ID
를 조직의 숫자 ID로 바꿉니다.VM에 외부 IP 주소가 사용되지 않도록 하려면 정책
allValues
를DENY
로 설정할 수 있습니다.{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allValues": "DENY" } }
REST
setOrgPolicy()
API를 사용하여 제약조건을 정의합니다. 사용자가 지정하는allowedValue
목록의 VM은 외부 IP 주소를 가질 수 있습니다. 또는deniedValues
목록을 지정하여 외부 IP 주소를 갖지 못하도록 명시적으로 금지할 VM을 표시할 수 있습니다. 목록에 없는 VM은 모두 외부 IP 주소를 갖도록 암시적으로 허용됩니다.allowedValues
또는deniedValues
중 하나를 지정할 수 있지만 둘 다 지정할 수는 없습니다.예를 들어 다음은 조직 내 특정 프로젝트의 VM이 외부 IP 주소를 갖는 것이 허용되는
compute.vmExternalIpAccess
제약조건을 조직에 적용하기 위한 요청입니다.POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:setOrgPolicy
여기서
ORGANIZATION_ID
는 조직의 숫자 ID입니다.이제 요청 본문에서 이 제약조건의 정책을 제공합니다.
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } } }
VM에 외부 IP 주소가 사용되지 않도록 하려면 정책
allValues
를DENY
로 설정할 수 있습니다.{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allValues": "DENY" } } }
프로젝트 수준에서 정책 설정
프로젝트 수준에서 정책을 설정하면 조직 수준의 정책이 재정의됩니다. 예를 들어 조직 수준에서
allowedValues
목록에example-vm-1
이 있지만, 프로젝트 수준의 정책에서deniedValues
목록에 동일한 VM이 있는 경우 VM이 외부 IP 주소를 갖는 것이 허용되지 않습니다.콘솔
조직 수준에서 정책 제약조건 설정에 설명된 것과 동일한 절차를 따르지만, 조직 대신 프로젝트 선택기에서 프로젝트를 선택합니다.
gcloud
gcloud resource-manager org-policies set-policy
명령어를 사용하여 정책을 설정합니다. 정책을 JSON 파일로 제공해야 합니다. 다음 형식으로 JSON 파일을 만듭니다.{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } }
다음을 바꿉니다.
또는 외부 IP 주소를 갖지 못하도록 명시적으로 금지할 VM의
deniedValues
목록을 지정할 수 있습니다. 목록에 없는 VM은 모두 외부 IP 주소를 갖도록 암시적으로 허용됩니다.allowedValues
또는deniedValues
중 하나를 지정할 수 있지만 둘 다 지정할 수는 없습니다.그런 다음 요청을 사용해서 파일을 전달합니다.
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=example-project
REST
setOrgPolicy
API를 사용하여 제약조건을 정의합니다. 사용자가 지정하는allowedValue
목록의 VM은 외부 IP 주소를 가질 수 있습니다. 또는deniedValues
목록을 지정하여 외부 IP 주소를 갖지 못하도록 명시적으로 금지할 VM을 표시할 수 있습니다. 목록에 없는 VM은 모두 외부 IP 주소를 갖도록 암시적으로 허용됩니다.allowedValues
또는deniedValues
중 하나를 지정할 수 있지만 둘 다 지정할 수는 없습니다.예를 들어 다음은 특정 VM이 외부 IP 주소를 갖는 것을 허용하는
compute.vmExternalIpAccess
제약조건을 프로젝트에 설정하기 위한 요청입니다.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setOrgPolicy
PROJECT_ID
를 이 요청의 프로젝트 ID로 바꾸세요.요청 본문에는 이 제약조건의 정책이 포함됩니다.
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } } }
외부 IP 주소 제한 권장사항
고정 외부 IP 주소 관리
다음 섹션에서는 VM의 고정 외부 IP 주소를 관리하는 방법을 설명합니다.
내부 IP 주소가 임시 주소 또는 고정 주소인지 확인
고정 및 임시 내부 IP 주소는 대부분의 상황에서 모양과 동작이 동일합니다. 그러나 고정 내부 IP 주소를 사용하면 리소스를 삭제하고 다시 만드는 경우에도 동일한 리소스에 같은 IP 주소를 사용할 수 있습니다. 일반적으로 임시 IP 주소는 리소스를 중지하거나 삭제할 때 해제됩니다.
주소가 고정 주소 또는 임시 주소인지 확인하려면 다음을 수행합니다.
고정 외부 IP 주소 할당 해제
IP 주소를 할당 해제하면 리소스에서 삭제되지만, IP 주소를 예약된 상태로 유지합니다. IP 주소를 할당 해제하면 IP 주소를 다른 리소스에 다시 할당할 수 있습니다.
VM을 삭제하여 IPv4 또는 IPv6 주소를 할당 해제할 수도 있습니다.
콘솔
gcloud
이제 고정 외부 IP 주소를 사용할 수 있으므로, 이를 다른 VM에 할당하도록 선택할 수 있습니다.
REST
고정 외부 IPv4 또는 IPv6 주소를 할당 해제하려면 다음 단계를 수행합니다.
자바
Python
고정 외부 IP 주소 해제
고정 외부 IPv4 또는 IPv6 주소가 더 이상 필요하지 않으면 IP 주소 리소스를 삭제하여 IP 주소를 해제할 수 있습니다. VM을 삭제해도 고정 외부 IP 주소는 자동으로 해제되지 않습니다. 더 이상 필요하지 않은 고정 외부 IP 주소는 수동으로 해제해야 합니다.
고정 외부 IP 주소를 해제하려면 VPC 문서의 고정 외부 IP 주소 해제를 참조하세요.
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-09-05(UTC)
-