8.2. 보안 그룹 및 키 쌍을 사용하여 인스턴스 액세스 보안
보안 그룹은 인스턴스를 ping할 수 있도록 하기 위해 ICMP와 같은 인스턴스에 대한 네트워크 및 프로토콜 액세스를 제어하는 IP 필터 규칙 집합이며, 인스턴스에 연결할 수 있도록 SSH를 제공합니다. 보안 그룹 규칙은 프로젝트 내의 모든 인스턴스에 적용됩니다.
모든 프로젝트에는 default라는 기본 보안 그룹이 있으며, 이 그룹은 인스턴스의 보안 그룹을 지정하지 않을 때 사용됩니다. 기본적으로 보안 그룹은 나가는 모든 트래픽을 허용하고 동일한 보안 그룹에서 인스턴스가 아닌 다른 소스에서 들어오는 모든 트래픽을 거부합니다. default 보안 그룹에 규칙을 추가하거나 프로젝트에 대한 새 보안 그룹을 만들 수 있습니다. 인스턴스를 생성하는 동안 하나 이상의 보안 그룹을 인스턴스에 적용할 수 있습니다. 실행 중인 인스턴스에 보안 그룹을 적용하려면 보안 그룹을 인스턴스에 연결된 포트에 적용합니다.
인스턴스를 생성하는 동안에는 RBAC(역할 기반 액세스 제어)-공유 보안 그룹을 인스턴스에 직접 적용할 수 없습니다. RBAC-shared 보안 그룹을 인스턴스에 적용하려면 먼저 포트를 생성하고, 공유 보안 그룹을 해당 포트에 적용한 다음 해당 포트를 인스턴스에 할당해야 합니다. 포트에 보안 그룹 추가를 참조하십시오.
키 쌍은 인스턴스에 대한 원격 액세스를 활성화하기 위해 시작될 때 인스턴스에 삽입되는 SSH 또는 x509 자격 증명입니다. RHOSP에서 새 키 쌍을 만들거나 기존 키 쌍을 가져올 수 있습니다. 각 사용자에게는 하나 이상의 키 쌍이 있어야 합니다. 키 쌍은 여러 인스턴스에 사용할 수 있습니다.
각 키 쌍은 프로젝트 대신 키 쌍을 생성하거나 가져온 개별 사용자에게 속하므로 프로젝트의 사용자 간에 키 쌍을 공유할 수 없습니다.
8.2.1. 보안 그룹 생성 링크 복사링크가 클립보드에 복사되었습니다!
새 보안 그룹을 만들어 프로젝트 내 인스턴스 및 포트에 적용할 수 있습니다.
절차
선택 사항: 필요한 보안 그룹이 아직 없는지 확인하려면 사용 가능한 보안 그룹 및 해당 규칙을 검토합니다.
openstack security group list openstack security group rule list <sec_group>
$ openstack security group list $ openstack security group rule list <sec_group>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<sec_group>을 사용 가능한 보안 그룹 목록에서 검색한 보안 그룹의 이름 또는 ID로 바꿉니다.
-
보안 그룹을 만듭니다.
openstack security group create mySecGroup
$ openstack security group create mySecGroupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 그룹에 규칙을 추가합니다.
openstack security group rule create --protocol <protocol> \ [--dst-port <port-range>] \ [--remote-ip <ip-address> | --remote-group <group>] \ [--ingress | --egress] mySecGroup
$ openstack security group rule create --protocol <protocol> \ [--dst-port <port-range>] \ [--remote-ip <ip-address> | --remote-group <group>] \ [--ingress | --egress] mySecGroupCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<protocol>을 인스턴스와 통신할 수 있는 프로토콜의 이름으로 바꿉니다. -
선택 사항:
<port-range>를 프로토콜에 대해 열 대상 포트 또는 포트 범위로 바꿉니다. IP 프로토콜 TCP, UDP 및 SCTP에 필요합니다. 지정된 프로토콜의 모든 포트를 허용하려면-1로 설정합니다. -
선택 사항: remote
-ip를 사용하여 원격 IP 주소 블록을 지정하거나을 사용하여 지정된 IP 주소에서만 액세스를 허용하여 규칙이 원격 그룹의 멤버인 인터페이스의 패킷에만 적용되도록 지정할 수 있습니다.--remote-group--remote-ip를 사용하는 경우<ip-address>를 원격 IP 주소 블록으로 바꿉니다. CIDR 표기법을 사용할 수 있습니다.--remote-group을 사용하는 경우<group>을 기존 보안 그룹의 이름 또는 ID로 바꿉니다. 옵션을 지정하지 않으면 원격 IP 액세스 범위 기본값(IPv4 기본값)으로 모든 주소에 액세스할 수 있습니다.0.0.0.0/0; IPv6 default:::/0). -
프로토콜 규칙이 적용되는 네트워크 트래픽 방향(수신) 또는
발신(Egress)에 지정합니다. 지정하지 않으면 기본값은ingress입니다.
-
인스턴스에 액세스할 수 있도록 허용하려는 모든 프로토콜에 대해 규칙을 생성할 때까지 3단계를 반복합니다. 다음 예제에서는 보안 그룹
mySecGroup의 인스턴스에 대한 SSH 연결을 허용하는 규칙을 생성합니다.openstack security group rule create --protocol tcp \ --dst-port 22 mySecGroup
$ openstack security group rule create --protocol tcp \ --dst-port 22 mySecGroupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.2. 보안 그룹 규칙 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
액세스할 수 있는 모든 보안 그룹의 규칙을 업데이트할 수 있습니다.
절차
규칙을 업데이트하려는 보안 그룹의 이름 또는 ID를 검색합니다.
openstack security group list
$ openstack security group listCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 보안 그룹에 적용해야 하는 규칙을 결정합니다.
보안 그룹에 규칙을 추가합니다.
openstack security group rule create --protocol <protocol> \ [--dst-port <port-range>] \ [--remote-ip <ip-address> | --remote-group <group>] \ [--ingress | --egress] <group_name>
$ 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 Copied! Toggle word wrap Toggle overflow -
<protocol>을 인스턴스와 통신할 수 있는 프로토콜의 이름으로 바꿉니다. -
선택 사항:
<port-range>를 프로토콜에 대해 열 대상 포트 또는 포트 범위로 바꿉니다. IP 프로토콜 TCP, UDP 및 SCTP에 필요합니다. 지정된 프로토콜의 모든 포트를 허용하려면-1로 설정합니다. -
선택 사항: remote
-ip를 사용하여 원격 IP 주소 블록을 지정하거나을 사용하여 지정된 IP 주소에서만 액세스를 허용하여 규칙이 원격 그룹의 멤버인 인터페이스의 패킷에만 적용되도록 지정할 수 있습니다.--remote-group--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로 바꿉니다.
-
인스턴스에 액세스할 수 있도록 허용하려는 모든 프로토콜에 대해 규칙을 생성할 때까지 3단계를 반복합니다. 다음 예제에서는 보안 그룹
mySecGroup의 인스턴스에 대한 SSH 연결을 허용하는 규칙을 생성합니다.openstack security group rule create --protocol tcp \ --dst-port 22 mySecGroup
$ openstack security group rule create --protocol tcp \ --dst-port 22 mySecGroupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.3. 보안 그룹 규칙 삭제 링크 복사링크가 클립보드에 복사되었습니다!
보안 그룹에서 규칙을 삭제할 수 있습니다.
절차
규칙이 적용되는 보안 그룹을 식별합니다.
openstack security group list
$ openstack security group listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 그룹과 연결된 규칙의 ID를 검색합니다.
openstack security group show <sec-group>
$ openstack security group show <sec-group>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 규칙 또는 규칙을 삭제합니다.
openstack security group rule delete <rule> [<rule> ...]
$ openstack security group rule delete <rule> [<rule> ...]Copy to Clipboard Copied! Toggle word wrap Toggle overflow <rule>을 삭제할 규칙의 ID로 바꿉니다. 삭제할 규칙의 ID 목록을 공백으로 구분하여 지정하여 한 번에 둘 이상의 규칙을 삭제할 수 있습니다.
8.2.4. 포트에 보안 그룹 추가 링크 복사링크가 클립보드에 복사되었습니다!
기본 보안 그룹은 대체 보안 그룹을 지정하지 않는 인스턴스에 적용됩니다. 실행 중인 인스턴스의 포트에 대체 보안 그룹을 적용할 수 있습니다.
절차
보안 그룹을 적용하려는 인스턴스에서 포트를 확인합니다.
openstack port list --server myInstancewithSSH
$ openstack port list --server myInstancewithSSHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 그룹을 포트에 적용합니다.
openstack port set --security-group <sec_group> <port>
$ openstack port set --security-group <sec_group> <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <sec_group>을 실행 중인 인스턴스의 포트에 적용할 보안 그룹의 이름 또는 ID로 바꿉니다. 필요에 따라--security-group옵션을 두 번 이상 사용하여 여러 보안 그룹을 적용할 수 있습니다.
8.2.5. 포트에서 보안 그룹 제거 링크 복사링크가 클립보드에 복사되었습니다!
포트에서 보안 그룹을 제거하려면 먼저 모든 보안 그룹을 제거한 다음 포트에 할당하려는 보안 그룹을 다시 추가합니다.
절차
포트와 연결된 모든 보안 그룹을 나열하고 포트와 연결된 상태로 유지하려는 보안 그룹의 ID를 기록합니다.
openstack port show <port>
$ openstack port show <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 포트와 연결된 모든 보안 그룹을 제거합니다.
openstack port set --no-security-group <port>
$ openstack port set --no-security-group <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 그룹을 포트에 다시 적용합니다.
openstack port set --security-group <sec_group> <port>
$ openstack port set --security-group <sec_group> <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <sec_group>을 실행 중인 인스턴스의 포트에 다시 적용하려는 보안 그룹의 ID로 바꿉니다. 필요에 따라--security-group옵션을 두 번 이상 사용하여 여러 보안 그룹을 적용할 수 있습니다.
8.2.6. 보안 그룹 삭제 링크 복사링크가 클립보드에 복사되었습니다!
포트와 연결되어 있지 않은 보안 그룹을 삭제할 수 있습니다.
절차
삭제할 보안 그룹의 이름 또는 ID를 검색합니다.
openstack security group list
$ openstack security group listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용 가능한 포트 목록을 검색합니다.
openstack port list
$ openstack port listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 각 포트에서 연결된 보안 그룹을 확인합니다.
openstack port show <port-uuid> -c security_group_ids
$ openstack port show <port-uuid> -c security_group_idsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 삭제하려는 보안 그룹이 포트 중 하나와 연결되어 있는 경우 먼저 포트에서 보안 그룹을 제거해야 합니다. 자세한 내용은 포트에서 보안 그룹 제거를 참조하십시오.
보안 그룹을 삭제합니다.
openstack security group delete <group> [<group> ...]
$ openstack security group delete <group> [<group> ...]Copy to Clipboard Copied! Toggle word wrap Toggle overflow <group>을 삭제하려는 그룹의 ID로 바꿉니다. 삭제할 그룹의 ID 목록을 공백으로 구분하여 지정하여 한 번에 둘 이상의 그룹을 삭제할 수 있습니다.
8.2.7. 새 SSH 키 쌍 생성 링크 복사링크가 클립보드에 복사되었습니다!
프로젝트 내에서 사용할 새 SSH 키 쌍을 만들 수 있습니다.
x509 인증서를 사용하여 Windows 인스턴스에 대한 키 쌍을 만듭니다.
절차
키 쌍을 생성하고 로컬
.ssh 디렉터리에 개인 키를 저장합니다.openstack keypair create <keypair> > ~/.ssh/<keypair>.pem
$ openstack keypair create <keypair> > ~/.ssh/<keypair>.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow <keypair>를 새 키 쌍의 이름으로 바꿉니다.개인 키를 보호합니다.
chmod 600 ~/.ssh/<keypair>.pem
$ chmod 600 ~/.ssh/<keypair>.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.8. 기존 SSH 키 쌍 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
새 키 쌍을 생성할 때 공개 키 파일을 제공하여 RHOSP(Red Hat OpenStack Platform) 외부에서 생성한 프로젝트로 SSH 키를 가져올 수 있습니다.
절차
기존 키 파일에서 키 쌍을 생성하고 local
.ssh 디렉터리에 개인 키를 저장합니다.기존 공개 키 파일에서 키 쌍을 가져오려면 다음 명령을 입력합니다.
openstack keypair create --public-key ~/.ssh/<public_key>.pub \ <keypair> > ~/.ssh/<keypair>.pem
$ openstack keypair create --public-key ~/.ssh/<public_key>.pub \ <keypair> > ~/.ssh/<keypair>.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<public_key>를 키 쌍을 생성하는 데 사용할 공개 키 파일의 이름으로 바꿉니다. -
<keypair>를 새 키 쌍의 이름으로 바꿉니다.
-
기존 개인 키 파일에서 키 쌍을 가져오려면 다음 명령을 입력합니다.
openstack keypair create --private-key ~/.ssh/<private_key> \ <keypair> > ~/.ssh/<keypair>.pem
$ openstack keypair create --private-key ~/.ssh/<private_key> \ <keypair> > ~/.ssh/<keypair>.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<private_key>를 키 쌍을 생성하는 데 사용할 공개 키 파일의 이름으로 바꿉니다. -
<keypair>를 새 키 쌍의 이름으로 바꿉니다.
-
개인 키를 보호합니다.
chmod 600 ~/.ssh/<keypair>.pem
$ chmod 600 ~/.ssh/<keypair>.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow