8.2. 보안 그룹 및 키 쌍을 사용하여 인스턴스 액세스 보안


보안 그룹은 인스턴스를 ping할 수 있도록 하기 위해 ICMP와 같은 인스턴스에 대한 네트워크 및 프로토콜 액세스를 제어하는 IP 필터 규칙 집합이며, 인스턴스에 연결할 수 있도록 SSH를 제공합니다. 보안 그룹 규칙은 프로젝트 내의 모든 인스턴스에 적용됩니다.

모든 프로젝트에는 default라는 기본 보안 그룹이 있으며, 이 그룹은 인스턴스의 보안 그룹을 지정하지 않을 때 사용됩니다. 기본적으로 보안 그룹은 나가는 모든 트래픽을 허용하고 동일한 보안 그룹에서 인스턴스가 아닌 다른 소스에서 들어오는 모든 트래픽을 거부합니다. default 보안 그룹에 규칙을 추가하거나 프로젝트에 대한 새 보안 그룹을 만들 수 있습니다. 인스턴스를 생성하는 동안 하나 이상의 보안 그룹을 인스턴스에 적용할 수 있습니다. 실행 중인 인스턴스에 보안 그룹을 적용하려면 보안 그룹을 인스턴스에 연결된 포트에 적용합니다.

참고

인스턴스를 생성하는 동안에는 RBAC(역할 기반 액세스 제어)-공유 보안 그룹을 인스턴스에 직접 적용할 수 없습니다. RBAC-shared 보안 그룹을 인스턴스에 적용하려면 먼저 포트를 생성하고, 공유 보안 그룹을 해당 포트에 적용한 다음 해당 포트를 인스턴스에 할당해야 합니다. 포트에 보안 그룹 추가를 참조하십시오.

키 쌍은 인스턴스에 대한 원격 액세스를 활성화하기 위해 시작될 때 인스턴스에 삽입되는 SSH 또는 x509 자격 증명입니다. RHOSP에서 새 키 쌍을 만들거나 기존 키 쌍을 가져올 수 있습니다. 각 사용자에게는 하나 이상의 키 쌍이 있어야 합니다. 키 쌍은 여러 인스턴스에 사용할 수 있습니다.

참고

각 키 쌍은 프로젝트 대신 키 쌍을 생성하거나 가져온 개별 사용자에게 속하므로 프로젝트의 사용자 간에 키 쌍을 공유할 수 없습니다.

8.2.1. 보안 그룹 생성

새 보안 그룹을 만들어 프로젝트 내 인스턴스 및 포트에 적용할 수 있습니다.

절차

  1. 선택 사항: 필요한 보안 그룹이 아직 없는지 확인하려면 사용 가능한 보안 그룹 및 해당 규칙을 검토합니다.

    $ openstack security group list
    $ openstack security group rule list <sec_group>
    Copy to Clipboard Toggle word wrap
    • <sec_group> 을 사용 가능한 보안 그룹 목록에서 검색한 보안 그룹의 이름 또는 ID로 바꿉니다.
  2. 보안 그룹을 만듭니다.

    $ openstack security group create mySecGroup
    Copy to Clipboard Toggle word wrap
  3. 보안 그룹에 규칙을 추가합니다.

    $ openstack security group rule create --protocol <protocol> \
    [--dst-port <port-range>] \
    [--remote-ip <ip-address> | --remote-group <group>] \
    [--ingress | --egress] mySecGroup
    Copy to Clipboard Toggle word wrap
    • <protocol> 을 인스턴스와 통신할 수 있는 프로토콜의 이름으로 바꿉니다.
    • 선택 사항: <port-range> 를 프로토콜에 대해 열 대상 포트 또는 포트 범위로 바꿉니다. IP 프로토콜 TCP, UDP 및 SCTP에 필요합니다. 지정된 프로토콜의 모든 포트를 허용하려면 -1 로 설정합니다.
    • 선택 사항: remote -ip를 사용하여 원격 IP 주소 블록을 지정하거나 --remote- group 을 사용하여 지정된 IP 주소에서만 액세스를 허용하여 규칙이 원격 그룹의 멤버인 인터페이스의 패킷에만 적용되도록 지정할 수 있습니다. --remote-ip 를 사용하는 경우 <ip-address> 를 원격 IP 주소 블록으로 바꿉니다. CIDR 표기법을 사용할 수 있습니다. --remote-group 을 사용하는 경우 <group> 을 기존 보안 그룹의 이름 또는 ID로 바꿉니다. 옵션을 지정하지 않으면 원격 IP 액세스 범위 기본값(IPv4 기본값)으로 모든 주소에 액세스할 수 있습니다. 0.0.0.0/0; IPv6 default: ::/0).
    • 프로토콜 규칙이 적용되는 네트워크 트래픽 방향(수신) 또는발신(Egress)에 지정합니다. 지정하지 않으면 기본값은 ingress 입니다.
  4. 인스턴스에 액세스할 수 있도록 허용하려는 모든 프로토콜에 대해 규칙을 생성할 때까지 3단계를 반복합니다. 다음 예제에서는 보안 그룹 mySecGroup 의 인스턴스에 대한 SSH 연결을 허용하는 규칙을 생성합니다.

    $ openstack security group rule create --protocol tcp \
     --dst-port 22 mySecGroup
    Copy to Clipboard Toggle word wrap

8.2.2. 보안 그룹 규칙 업데이트

액세스할 수 있는 모든 보안 그룹의 규칙을 업데이트할 수 있습니다.

절차

  1. 규칙을 업데이트하려는 보안 그룹의 이름 또는 ID를 검색합니다.

    $ openstack security group list
    Copy to Clipboard Toggle word wrap
  2. 보안 그룹에 적용해야 하는 규칙을 결정합니다.
  3. 보안 그룹에 규칙을 추가합니다.

    $ openstack security group rule create --protocol <protocol> \
    [--dst-port <port-range>] \
    [--remote-ip <ip-address> | --remote-group <group>] \
    [--ingress | --egress] <group_name>
    Copy to Clipboard Toggle word wrap
    • <protocol> 을 인스턴스와 통신할 수 있는 프로토콜의 이름으로 바꿉니다.
    • 선택 사항: <port-range> 를 프로토콜에 대해 열 대상 포트 또는 포트 범위로 바꿉니다. IP 프로토콜 TCP, UDP 및 SCTP에 필요합니다. 지정된 프로토콜의 모든 포트를 허용하려면 -1 로 설정합니다.
    • 선택 사항: remote -ip를 사용하여 원격 IP 주소 블록을 지정하거나 --remote- group 을 사용하여 지정된 IP 주소에서만 액세스를 허용하여 규칙이 원격 그룹의 멤버인 인터페이스의 패킷에만 적용되도록 지정할 수 있습니다. --remote-ip 를 사용하는 경우 <ip-address> 를 원격 IP 주소 블록으로 바꿉니다. CIDR 표기법을 사용할 수 있습니다. --remote-group 을 사용하는 경우 <group> 을 기존 보안 그룹의 이름 또는 ID로 바꿉니다. 옵션을 지정하지 않으면 원격 IP 액세스 범위 기본값(IPv4 기본값)으로 모든 주소에 액세스할 수 있습니다. 0.0.0.0/0; IPv6 default: ::/0).
    • 프로토콜 규칙이 적용되는 네트워크 트래픽 방향(수신) 또는발신(Egress)에 지정합니다. 지정하지 않으면 기본값은 ingress 입니다.
    • <group_name> 을 규칙을 적용하려는 보안 그룹의 이름 또는 ID로 바꿉니다.
  4. 인스턴스에 액세스할 수 있도록 허용하려는 모든 프로토콜에 대해 규칙을 생성할 때까지 3단계를 반복합니다. 다음 예제에서는 보안 그룹 mySecGroup 의 인스턴스에 대한 SSH 연결을 허용하는 규칙을 생성합니다.

    $ openstack security group rule create --protocol tcp \
     --dst-port 22 mySecGroup
    Copy to Clipboard Toggle word wrap

8.2.3. 보안 그룹 규칙 삭제

보안 그룹에서 규칙을 삭제할 수 있습니다.

절차

  1. 규칙이 적용되는 보안 그룹을 식별합니다.

    $ openstack security group list
    Copy to Clipboard Toggle word wrap
  2. 보안 그룹과 연결된 규칙의 ID를 검색합니다.

    $ openstack security group show <sec-group>
    Copy to Clipboard Toggle word wrap
  3. 규칙 또는 규칙을 삭제합니다.

    $ openstack security group rule delete <rule> [<rule> ...]
    Copy to Clipboard Toggle word wrap

    <rule> 을 삭제할 규칙의 ID로 바꿉니다. 삭제할 규칙의 ID 목록을 공백으로 구분하여 지정하여 한 번에 둘 이상의 규칙을 삭제할 수 있습니다.

8.2.4. 포트에 보안 그룹 추가

기본 보안 그룹은 대체 보안 그룹을 지정하지 않는 인스턴스에 적용됩니다. 실행 중인 인스턴스의 포트에 대체 보안 그룹을 적용할 수 있습니다.

절차

  1. 보안 그룹을 적용하려는 인스턴스에서 포트를 확인합니다.

    $ openstack port list --server myInstancewithSSH
    Copy to Clipboard Toggle word wrap
  2. 보안 그룹을 포트에 적용합니다.

    $ openstack port set --security-group <sec_group> <port>
    Copy to Clipboard Toggle word wrap

    <sec_group> 을 실행 중인 인스턴스의 포트에 적용할 보안 그룹의 이름 또는 ID로 바꿉니다. 필요에 따라 --security-group 옵션을 두 번 이상 사용하여 여러 보안 그룹을 적용할 수 있습니다.

8.2.5. 포트에서 보안 그룹 제거

포트에서 보안 그룹을 제거하려면 먼저 모든 보안 그룹을 제거한 다음 포트에 할당하려는 보안 그룹을 다시 추가합니다.

절차

  1. 포트와 연결된 모든 보안 그룹을 나열하고 포트와 연결된 상태로 유지하려는 보안 그룹의 ID를 기록합니다.

    $ openstack port show <port>
    Copy to Clipboard Toggle word wrap
  2. 포트와 연결된 모든 보안 그룹을 제거합니다.

    $ openstack port set --no-security-group <port>
    Copy to Clipboard Toggle word wrap
  3. 보안 그룹을 포트에 다시 적용합니다.

    $ openstack port set --security-group <sec_group> <port>
    Copy to Clipboard Toggle word wrap

    <sec_group> 을 실행 중인 인스턴스의 포트에 다시 적용하려는 보안 그룹의 ID로 바꿉니다. 필요에 따라 --security-group 옵션을 두 번 이상 사용하여 여러 보안 그룹을 적용할 수 있습니다.

8.2.6. 보안 그룹 삭제

포트와 연결되어 있지 않은 보안 그룹을 삭제할 수 있습니다.

절차

  1. 삭제할 보안 그룹의 이름 또는 ID를 검색합니다.

    $ openstack security group list
    Copy to Clipboard Toggle word wrap
  2. 사용 가능한 포트 목록을 검색합니다.

    $ openstack port list
    Copy to Clipboard Toggle word wrap
  3. 각 포트에서 연결된 보안 그룹을 확인합니다.

    $ openstack port show <port-uuid> -c security_group_ids
    Copy to Clipboard Toggle word wrap

    삭제하려는 보안 그룹이 포트 중 하나와 연결되어 있는 경우 먼저 포트에서 보안 그룹을 제거해야 합니다. 자세한 내용은 포트에서 보안 그룹 제거를 참조하십시오.

  4. 보안 그룹을 삭제합니다.

    $ openstack security group delete <group> [<group> ...]
    Copy to Clipboard Toggle word wrap

    <group> 을 삭제하려는 그룹의 ID로 바꿉니다. 삭제할 그룹의 ID 목록을 공백으로 구분하여 지정하여 한 번에 둘 이상의 그룹을 삭제할 수 있습니다.

8.2.7. 새 SSH 키 쌍 생성

프로젝트 내에서 사용할 새 SSH 키 쌍을 만들 수 있습니다.

참고

x509 인증서를 사용하여 Windows 인스턴스에 대한 키 쌍을 만듭니다.

절차

  1. 키 쌍을 생성하고 로컬 .ssh 디렉터리에 개인 키를 저장합니다.

    $ openstack keypair create <keypair> > ~/.ssh/<keypair>.pem
    Copy to Clipboard Toggle word wrap

    <keypair> 를 새 키 쌍의 이름으로 바꿉니다.

  2. 개인 키를 보호합니다.

    $ chmod 600 ~/.ssh/<keypair>.pem
    Copy to Clipboard Toggle word wrap

8.2.8. 기존 SSH 키 쌍 가져오기

새 키 쌍을 생성할 때 공개 키 파일을 제공하여 RHOSP(Red Hat OpenStack Platform) 외부에서 생성한 프로젝트로 SSH 키를 가져올 수 있습니다.

절차

  1. 기존 키 파일에서 키 쌍을 생성하고 local .ssh 디렉터리에 개인 키를 저장합니다.

    • 기존 공개 키 파일에서 키 쌍을 가져오려면 다음 명령을 입력합니다.

      $ openstack keypair create --public-key ~/.ssh/<public_key>.pub \
       <keypair> > ~/.ssh/<keypair>.pem
      Copy to Clipboard Toggle word wrap
      • <public_key> 를 키 쌍을 생성하는 데 사용할 공개 키 파일의 이름으로 바꿉니다.
      • <keypair> 를 새 키 쌍의 이름으로 바꿉니다.
    • 기존 개인 키 파일에서 키 쌍을 가져오려면 다음 명령을 입력합니다.

      $ openstack keypair create --private-key ~/.ssh/<private_key> \
       <keypair> > ~/.ssh/<keypair>.pem
      Copy to Clipboard Toggle word wrap
      • <private_key> 를 키 쌍을 생성하는 데 사용할 공개 키 파일의 이름으로 바꿉니다.
      • <keypair> 를 새 키 쌍의 이름으로 바꿉니다.
  2. 개인 키를 보호합니다.

    $ chmod 600 ~/.ssh/<keypair>.pem
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat