주의: 가상 네트워크 인터페이스, 인스턴스, 베어메탈 서버 및 파일 공유에 대한 동작 변경 완화
2024년 3월 12일, 가상 네트워크 인터페이스 에 대한 지원을 확장하는 기능이 VPC (Virtual Private Cloud) 서비스에서 일반적으로 사용 가능하게 되었습니다. 계정에서 사용되는 경우 이 기능은 인스턴스, 베어메탈 서버 및 파일 공유에 대한 동작 변경사항을 도입합니다. 이러한 변경사항은 이러한 자원을 관리하기 위한 자동화 또는 워크플로우에 영향을 줄 수 있습니다.
IBM 지원팀을 통해 이 기능에 대한 접근을 연기하도록 선택할 수 있습니다. 액세스가 지연된 계정의 사용자는 가상 네트워크 인터페이스를 사용하여 인스턴스 또는 베어메탈 서버를 작성할 수 없습니다. 가상 네트워크 인터페이스에 대한 변경사항을 평가, 수정 및 테스트하는 데 더 많은 시간이 필요한 경우 테스트 계정을 사용하여 완화를 완료하는 동안 프로덕션 계정에 대한 지연을 요청하십시오.
이 기능에 대한 액세스를 지연하지 않은 경우에는 가상 네트워크 인터페이스를 사용하지 않으려는 경우에도 제공된 지침을 읽으십시오.
무엇이 변경되었습니까?
가상 네트워크 인터페이스에 대해 다음 기능을 사용할 수 있습니다.
- 네트워크 연결이라고 하는 새 하위 리소스에 연결된 가상 네트워크 인터페이스를 사용하여 인스턴스 및 베어메탈 서버 를 작성할 수 있습니다.
primary_network_attachment(primary_network_interface대신) 를 지정하고 이미 작성된 가상 네트워크 인터페이스의 ID 또는 인스턴스 또는 베어메탈 서버에 대한 새 가상 네트워크 인터페이스를 작성하기 위한 서브넷을 제공할 수 있습니다. - 가상 네트워크 인터페이스에는 연결된 자원과 독립적인 라이프사이클이 있습니다. 가상 네트워크 인터페이스가 원래 베어메탈 서버 또는 인스턴스의 라이프사이클 이상으로 지속되고 다른 베어메탈 서버 또는 인스턴스에 다시 연결될 수 있도록
auto_delete특성을false로 업데이트 할 수 있습니다. - 가상 네트워크 인터페이스는 2차 IP 주소 를 지원합니다. 가상 네트워크 인터페이스에 예약된 IP를 추가 하고 제거 할 수 있습니다.
- 기존 클라이언트, 인스턴스 및 가상 네트워크 인터페이스가 있는 베어메탈 서버와의 호환성을 위해 해당 네트워크 연결 및 가상 네트워크 인터페이스를 이전 스타일 네트워크 인터페이스 하위 자원으로 읽기 전용으로 표시합니다. 이전 API 클라이언트에 대한 지원 에 대해 학습하십시오.
- 가상 네트워크 인터페이스가 있는 인스턴스 및 베어메탈 서버의 경우, IP 스푸핑을 허용하거나 인프라 NAT를 사용 안함으로 설정하는 옵션에 대한 IAM 권한이 연결된 가상 네트워크 인터페이스에서 관리됩니다. 가상 네트워크 인터페이스를 작성 또는 업데이트 할 때 각각
is.virtual-network-interface.virtual-network-interface.manage-ip-spoofing및is.virtual-network-interface.virtual-network-interface.manage-infrastructure-natIAM 권한이 있는 경우에만allow_ip_spoofing및enable_infrastructure_nat특성에 대해 기본값이 아닌 값을 설정할 수 있습니다. - 플로우 로그 콜렉터 를 사용하여 인스턴스 네트워크 연결 및 가상 네트워크 인터페이스를 대상으로 지정할 수 있습니다. 베어메탈 서버 및 공유 마운트 대상에 대한 플로우 로그는 지원되지 않습니다.
왜 우리가 이런 변화를 만들었을까요?
가상 네트워크 인터페이스는 하나의 자원에 네트워크 정책을 통합하는 메커니즘을 제공합니다. 이 자원은 첨부되는 자원과 독립적인 라이프사이클을 사용하여 보존하고 재사용할 수 있습니다. 네트워크 특정 IAM 권한은 컴퓨팅 IAM 권한과 별도로 관리됩니다. 새 네트워크 기능이 릴리스되면 가상 네트워크 인터페이스를 통해 사용 가능하게 되어 새 네트워크 기능이 가상 네트워크 인터페이스가 연결할 수 있는 모든 자원을 지원할 수 있습니다.
이 변경의 영향은 무엇입니까?
이 기능에 대한 액세스를 연기하지 않은 경우 인스턴스, 베어메탈 서버, 네트워크 인터페이스 또는 파일 공유와 상호작용하는 API 클라이언트 (예: 사용자 정의 자동화, 감사 스크립트 또는 대시보드) 가 있으면 계정이 이 변경의 영향을 받습니다.
이러한 조작으로 인해 API 클라이언트 및 워크플로우가 실패할 수 있습니다.
실패를 방지하기 위해 취할 수 있는 조치는 무엇입니까?
이 절에 설명된 동작 변경사항은 계정이 이 기능에 대한 액세스를 연기하지 않은 경우 코드에 영향을 줄 수 있는 위험 유형을 나타냅니다. 계정의 누군가가 자동화를 중단할 수 있는 조작을 수행하기 시작할 수 있습니다.
이러한 변경사항을 사용자가 작성한 클라이언트 자동화와 비교하십시오. 이 지침을 사용하여 자동화를 위한 디자인을 업데이트하고 테스트하여 API 클라이언트 및 워크플로우 실패를 유발할 수 있는 동작 변경사항을 완화하십시오.
가상 네트워크 인터페이스 조치방안
네트워크 연결이라고 하는 새 하위 리소스에 연결된 가상 네트워크 인터페이스를 사용하여 인스턴스 및 베어메탈 서버를 작성할 수 있습니다. 가상 네트워크 인터페이스에는 연결된 자원과 독립적인 라이프사이클이 있으며 네트워크 특정 IAM 조치는 가상 네트워크 인터페이스에서 관리됩니다.
- 동작 변경 1
-
네트워크 연결로 작성된 인스턴스 또는 베어메탈 서버의 경우, 인스턴스 또는 베어메탈 서버의 네트워크 인터페이스 하위 리소스는 해당 네트워크 연결 (및 연관된 가상 네트워크 인터페이스) 의 읽기 전용 표시 입니다.
-
가능한 실패: 이러한 읽기 전용 자원을 갱신하려고 시도하는 클라이언트가 실패합니다.
-
완화: 인스턴스 및 베어메탈 서버의
network_interfaces하위 자원을 검색하고 업데이트하는 클라이언트 코드를 검토하십시오. 필요에 따라 코드를 업데이트하여primary_network_attachment특성이 있는지 인스턴스 또는 베어메탈 서버를 확인하십시오. 대신network_attachments하위 자원 및 연관된 가상 네트워크 인터페이스를 업데이트하도록 클라이언트 로직을 변경하십시오. - 동작 변경 2
-
가상 네트워크 인터페이스에는 연결된 자원과 독립적인 라이프사이클이 있습니다.
auto_delete가false로 설정된 가상 네트워크 인터페이스는 대상이 삭제된 후에도 지속되며 가상 네트워크 인터페이스에 바인드된 예약 IP는 바인드된 상태로 유지됩니다. 이후에 가상 네트워크 인터페이스를 다른 자원에 연결할 수 있습니다. -
가능한 실패: 인스턴스를 삭제한 후 삭제된 인스턴스에서 예약된 IP를 재사용하는 새 인스턴스를 작성하는 워크플로우가 실패할 수 있습니다. 해제되지 않은 예약된 IP가 삭제된 인스턴스보다 오래 남아 있는 가상 네트워크 인터페이스에 여전히 바인드되어 있기 때문에 이를 재사용하려고 할 때 실패가 발생합니다.
-
완화: 인스턴스 및 베어메탈 서버에서 사용하는 예약된 IP가
network_interfaces하위 자원에 바인드되고 인스턴스 또는 베어메탈 서버의 삭제 후 항상 즉시 바인드 해제된다는 가정에 대해 클라이언트 코드를 검토하십시오. 다음 중 하나를 수행하도록 클라이언트를 변경하십시오.- 삭제하기 전에 인스턴스 또는 베어메탈 서버의
network_attachments와 연관된 가상 네트워크 인터페이스에서auto_delete특성을true로 설정하십시오. - 예약된 IP를 재사용하기 전에 모든 가상 네트워크 인터페이스를 별도로 삭제
primary_ip, 모든 2차ips, 모든security_groups등과 같은 가상 네트워크 인터페이스의 모든 특성을 재사용하는 가상 네트워크 인터페이스를 재사용하십시오.
- 삭제하기 전에 인스턴스 또는 베어메탈 서버의
- 동작 변경 3
-
가상 네트워크 인터페이스가 있는 인스턴스 및 베어메탈 서버의 경우 IP 스푸핑을 허용하거나 인프라 NAT를 사용 안함으로 설정하는 옵션에 대한 IAM 권한이 연관된 가상 네트워크 인터페이스에서 관리됩니다.
-
가능한 장애: 인스턴스 또는 베어메탈 서버가 네트워크 연결을 사용하여 작성된 경우 IP 스푸핑을 허용하거나 인프라 NAT를 사용 안함으로 설정하기 위해 하위 네트워크 인터페이스에서 특성을 업데이트하는 클라이언트 및 워크플로우가 실패합니다.
-
완화:
network_interfaces하위 자원에서allow_ip_spoofing또는enable_infrastructure_nat특성을 업데이트하는 클라이언트 코드를 검토하십시오. 코드를 업데이트하여primary_network_attachment특성이 있는지 확인하십시오. 이는network_interfaces하위 자원이 읽기 전용임을 나타냅니다. 인스턴스 또는 베어메탈 서버의network_attachments와 연관된 가상 네트워크 인터페이스에서 필요에 따라allow_ip_spoofing또는enable_infrastructure_nat특성을 대신 업데이트하도록 클라이언트 로직을 업데이트하십시오.
IP 주소 수정
- 행동의 변화
-
가상 네트워크 인터페이스는 2차 IP 주소를 지원합니다.
-
가능한 실패:
network_interfaces하위 자원에서primary_ip.address를 검색하여 인스턴스의 IP 주소를 열거하려고 시도하는 클라이언트는network_interfaces가network_attachments및 연관된 가상 네트워크 인터페이스의 역호환 가능한 표시인 경우 보조 IP 주소를 누락합니다. -
완화: 인스턴스 및 베어메탈 서버의 IP 주소를 열거하거나 감사하는 클라이언트 코드를 검토하십시오. 클라이언트 코드를 업데이트하여
primary_network_attachment특성이 있는지 확인하십시오. 이는 인스턴스 또는 베어메탈 서버에 연관된 가상 네트워크 인터페이스가 있는network_attachments가 있음을 나타냅니다. 대신 연관된 각 가상 네트워크 인터페이스에서ips배열의 모든address특성을 검색하도록 클라이언트 로직을 업데이트하십시오.
플로우 로그 콜렉터 조치방안
- 행동의 변화
-
플로우 로그 콜렉터는 인스턴스 네트워크 연결 및 가상 네트워크 인터페이스를 대상으로 할 수 있습니다. 인터페이스가 인스턴스 네트워크 연결에 바인드되고 수집된 플로우 로그에 대한 Cloud Object Storage(COS)이름 지정 규칙 의
vnic-id필드에 인스턴스 네트워크 연결 ID가 있는 경우 가상 네트워크 인터페이스에 대한 플로우 로그가 수집됩니다. 그 수명 동안, 가상 네트워크 인터페이스는 둘 이상의 인스턴스에 접속될 수 있다. -
실패 가능성 : IBM Cloud® Object Storage 버킷에서 수집된 플로우 로그를 분석하는 도구, 감사 또는 문제 해결 절차가 로그를 가상 네트워크 인터페이스와 상호 연관시키지 못할 수 있습니다.
-
완화: 플로우 로그 콜렉터를 작성하고 플로우 로그를 분석하는 도구, 감사 또는 문제점 해결 프로시저를 검토하고 업데이트하십시오. 플로우 로그 콜렉터를 사용하여 가상 네트워크 인터페이스를 대상으로 하는 경우, 플로우 로그를 분석하는 프로시저에서 콜렉터가 가상 네트워크 인터페이스의 수명 동안 둘 이상의 인스턴스에 대한 플로우 로그를 수집할 수 있음을 고려해야 합니다. 인스턴스의 ID는 플로우 로그 Object Storage 버킷 이름의
instance-id섹션에 있습니다. 따라서 가상 네트워크 인터페이스를 새 인스턴스와 연관시켜 가상 네트워크 인터페이스의target가 업데이트될 때 새 플로우 로그 Object Storage 버킷이 작성됩니다.
활동 추적 이벤트 수정
- 행동의 변화
-
가상 네트워크 인터페이스에 대한 확장된 지원으로 많은 새로운 활동 추적 이벤트가 추가되었습니다:
-
실패 가능성 : 새 활동 추적 이벤트에 대해 업데이트되지 않은 클라이언트 도구 및 감사 프로세스는 불완전한 이벤트 시퀀스를 보고합니다.
-
완화 : 활동 추적 이벤트를 소비하는 툴을 검토하고 필요에 따라 새 이벤트를 포함하도록 툴을 업데이트하세요. 네트워크 첨부 파일의 읽기 전용 표현에 대해서는 활동 추적 이벤트가 생성되지 않는다는 점을 고려하세요.
인스턴스 템플리트 조치방안
- 동작 변경 1
-
인스턴스 템플리트는 이전 스타일의
network_interfaces하위 자원이 있는 인스턴스 또는network_attachments하위 자원 및 연관된 가상 네트워크 인터페이스가 있는 인스턴스에 대한 것일 수 있습니다. 인스턴스 템플리트에서 인스턴스를 작성할 때 네트워크 인터페이스 또는 접속 유형은 소스 템플리트의 접속 유형과 일치해야 합니다. -
가능한 실패: 인스턴스 템플리트에서 인스턴스를 작성하고
primary_network_interface또는network_interfaces특성을 대체하는 클라이언트 및 워크플로우는 템플리트가primary_network_attachment또는network_attachments의 인스턴스에 대한 것인 경우 실패합니다. -
완화: 템플리트에서 인스턴스를 작성하기 전에 인스턴스 템플리트를 검색하고 템플리트에
primary_network_interface및network_interfaces특성 또는primary_network_attachment및network_attachments특성이 있는지 여부를 판별하십시오. 템플리트에서 인스턴스를 작성할 때 필요에 따라 인스턴스 특성을 템플리트의 특성과 일치시키십시오. - 동작 변경 2
-
인스턴스 템플리트는 이전 스타일의
network_interfaces하위 자원이 있는 인스턴스 또는network_attachments하위 자원 및 연관된 가상 네트워크 인터페이스가 있는 인스턴스에 대한 것일 수 있습니다. 인스턴스 템플리트에서 인스턴스 템플리트를 작성할 때 네트워크 인터페이스 또는 첨부 유형은 소스 템플리트의 유형과 일치해야 합니다. -
가능한 실패: 다른 인스턴스 템플리트에서 인스턴스 템플리트를 작성하고
primary_network_interface또는network_interfaces특성을 대체하는 클라이언트 및 워크플로우는 소스 템플리트가primary_network_attachment및network_attachments의 인스턴스에 대한 것인 경우 실패합니다. -
완화: 소스 템플리트에서 인스턴스 템플리트를 작성하기 전에 소스 템플리트를 검색하고 소스 템플리트에
primary_network_interface및network_interfaces특성 또는primary_network_attachment및network_attachments특성이 있는지 여부를 판별하십시오. 소스 템플리트에서 새 템플리트를 작성할 때 필요에 따라 새 템플리트 특성을 소스 템플리트의 특성과 일치시키십시오.주: 다음 중 하나에 해당하는 경우 이러한 템플리트 동작 변경의 영향을 받습니다.
- API 클라이언트 또는 계정의 사용자가 네트워크 연결이 있는 템플리트를 작성하고 클라이언트가 새 템플리트를 사용하여 네트워크 인터페이스가 있는 인스턴스 또는 템플리트를 작성하려고 시도합니다.
- 클라이언트가 네트워크 인터페이스가 있는 템플리트를 사용하여 네트워크 첨부가 있는 인스턴스 또는 템플리트를 작성하려고 시도합니다.