Application de règles de groupe de sécurité aux adresses IP source et de destination
Les règles de groupe de sécurité prennent désormais en charge les adresses IP locales. Cela signifie que les règles peuvent autoriser des adresses IP locales spécifiques au lieu d'autoriser toutes les adresses IP locales. Les règles de groupe de sécurité prennent en charge les adresses IP locales pour les règles d'entrée et de sortie.
L'autorisation d'adresses IP locales spécifiques ou de plages d'adresses avec une règle de groupe de sécurité est utile dans les cas suivants:
- Vous disposez d'adresses IP privées secondaires qui sont associées à une seule interface de réseau virtuel
- Vous disposez de routes personnalisées qui transmettent les paquets à une interface avec l'usurpation d'adresse IP autorisée
Vous pouvez appliquer une règle de groupe de sécurité entrant qui autorise uniquement des adresses IP de destination locales spécifiques. Vous pouvez également appliquer une règle de groupe de sécurité sortant qui n'autorise que des adresses IP source locales spécifiques.
Vous pouvez appliquer des règles de groupe de sécurité (entrantes et sortantes) à l'aide de la console, de la CLI, de l'API et de Terraform.
Astuces :
- Toutes les règles sont évaluées, quel que soit l'ordre dans lequel elles ont été ajoutées.
- Les règles possèdent un état, ce qui signifie que le trafic en retour en réponse au trafic autorisé est admis automatiquement. Par exemple, vous avez créé une règle autorisant le trafic TCP entrant sur le port 80. Cette règle permet également de répondre au trafic TCP sortant sur le port 80 vers l'hôte d'origine, sans qu'une autre règle soit nécessaire.
- Pour les images Windows, assurez-vous que le groupe de sécurité associé à l'instance autorise le trafic entrant et sortant du protocole RDP (port TCP
3389).
Cas d'utilisation
Lorsque vous créez une règle de groupe de sécurité, vous avez la possibilité d'autoriser une adresse IP locale spécifique ou un routage CIDR. A l'instar de la propriété distante, il existe une propriété locale qui peut être l'une des suivantes:
- Une adresse IP-La règle s'applique à une adresse IP de destination spécifique (pour une règle entrante) ou à une adresse IP source (pour une règle sortante)
- Un routage CIDR-La règle s'applique à un routage CIDR de destination spécifique (pour une règle entrante) ou à un routage CIDR source (pour une règle sortante)
La figure 1 illustre une règle sortante de groupe de sécurité avec une adresse IP local. Le trafic est autorisé à partir de l'adresse IP locale 10.243.0.1 vers n'importe quelle adresse distante de la plage 10.243.200.0/24.
La ligne de chemin de données verte indique le trafic autorisé ; la ligne rouge indique le trafic non autorisé.
La figure 2 illustre une règle entrante de groupe de sécurité avec une adresse IP local. Le trafic destiné à l'adresse IP locale 10.243.0.1 à partir de n'importe quelle adresse distante de la plage 10.243.200.0/24 est autorisé. Le trafic vers d'autres adresses IP locales n'est pas autorisé.
Création de règles de groupe de sécurité dans la console
Vous pouvez créer des règles entrantes et sortantes pendant ou après la mise à disposition d'un groupe de sécurité.
-
Depuis votre navigateur, ouvrez la consoleIBM Cloud.
-
Sélectionnez l'
menu de navigation, puis cliquez sur l'icône Infrastructure
> Réseau > Groupes de sécurité.
-
Dans la table Groupes de sécurité pour VPC, choisissez l'une des options suivantes:
- Pour créer des règles lors de la mise à disposition d'un nouveau groupe de sécurité, cliquez sur Créer, puis suivez les instructions de la rubrique Configuration d'un groupe de sécurité pour votre ressource.
- Pour créer des règles pour un groupe de sécurité existant, cliquez sur le nom du groupe de sécurité pour afficher sa page Détails, puis passez à l'étape 4.
-
Pour créer et gérer des règles, sélectionnez l'onglet Règles.
-
Choisissez l'une des options suivantes :
-
Pour créer une règle entrante, sélectionnez Créer dans la table des règles entrantes et renseignez les zones suivantes. Cliquez ensuite sur Créer.
- Protocole - Spécifiez le protocole à appliquer ( ICMP_TCP_UDP, ANY ou l'un des autres IPv4 protocoles).
- Port-Indiquez les ports auxquels la règle s'applique. Sélectionnez Tout ou indiquez une plage de ports (valeurs de port min et max). Les valeurs de port pour TCP et UDP doivent être des nombres compris entre 1 et 65535. Les valeurs de port valides pour ICMP sont comprises entre 0 et 254.
- Type de source : sélectionnez l'ensemble d'interfaces réseau à partir desquelles cette règle autorise le trafic. Vous pouvez sélectionner N'importe quel, adresse IP ou bloc CIDR pour le trafic entrant autorisé. Vous pouvez aussi spécifier un groupe de sécurité dans le même cloud privé virtuel pour autoriser le trafic vers ou depuis toutes les instances associées au groupe de sécurité sélectionné.
- Type de destination-Sélectionnez Tout, adresse IP ou Bloc CIDR.
-
Pour créer une règle sortante, sélectionnez Créer dans la table des règles sortantes et renseignez les zones suivantes. Cliquez ensuite sur Créer.
- Protocole - Spécifiez le protocole à appliquer ( TCP, UDP, ICMP ou TCP-UDP-ICMP ).
- Port-Indiquez les ports auxquels la règle s'applique. Sélectionnez Tout ou indiquez une plage de ports (valeurs de port min et max). Les valeurs de port pour TCP et UDP doivent être des nombres compris entre 1 et 65535. Les valeurs de port valides pour ICMP sont comprises entre 0 et 254.
- Type de destination-Sélectionnez Indifférent, Adresse IP, Bloc CIDR ou Groupe de sécurité.
- Type de source-Sélectionnez Tout, adresse IP ou Bloc CIDR.
-
Création de règles de groupe de sécurité à partir de l'interface de ligne de commande
Pour créer des règles de groupe de sécurité (entrantes et sortantes) à l'aide de l'interface de ligne de commande, entrez la commande suivante.
ibmcloud is security-group-rule-add GROUP DIRECTION PROTOCOL [--vpc VPC] [--local LOCAL_ADDRESS | CIDR_BLOCK] [--remote REMOTE_ADDRESS | CIDR_BLOCK | SECURITY_GROUP] [--icmp-type ICMP_TYPE [--icmp-code ICMP_CODE]] [--port-min PORT_MIN] [--port-max PORT_MAX] [--output JSON] [-q, --quiet]
Où :
GROUP- ID ou nom du groupe de sécurité.
DIRECTION- Direction du trafic à appliquer. L'un des suivants :
inbound,outbound. PROTOCOL- Protocole auquel la règle s'applique. L'un des éléments suivants
tcp:udp,icmp,icmp_tcp_udp,gre,ip_in_ip,ah,esp,l2tp,rsvp,sctp,vrrp, ounumber_<N>. --vpc- ID ou nom du cloud privé virtuel. Cette option est uniquement requise pour spécifier la ressource unique par son nom au sein de ce VPC.
--local- Adresse IP locale ou plage d'adresses IP locales auxquelles cette règle autorise le trafic entrant (ou à partir desquelles, pour le trafic sortant). Peut être spécifié sous la forme d'une adresse IP ou d'un bloc CIDR. L'un des éléments suivants
:
LOCAL_ADDRESS,CIDR_BLOCK. Un bloc CIDR de0.0.0.0/0autorise le trafic vers toutes les adresses IP locales (ou provenant de toutes les adresses IP locales, pour les règles sortantes). --remote- L'ensemble des interfaces réseau à partir desquelles cette règle autorise le trafic. Il peut être spécifié comme,
REMOTE_ADDRESSCIDR_BLOCK, ouSECURITY_GROUP. Si cette option n'est pas spécifiée, le trafic est autorisé depuis toute source (ou vers toute source, pour les règles sortantes). --icmp-type- Type de trafic ICMP à autoriser. Valeurs valides comprises entre
0et254. Cette option n'est spécifiée que lorsque le protocole est défini suricmp. Si cette option n'est pas spécifiée, tous les types sont admis. --icmp-code- Code de trafic ICMP à autoriser. Valeurs valides comprises entre
0et255. Cette option est spécifiée uniquement lorsque le protocole défini est icmp. Si cette option n'est pas spécifiée, tous les codes sont admis. -port-min- Numéro de port minimal. Les valeurs valides vont de
1à65535. Cette option n'est spécifiée que lorsque le protocole est défini surtcpouudp. Si non spécifié, tous les ports sont autorisés (par défaut :1). --port-max- Numéro de port maximal. Les valeurs valides vont de
1à65535. Cette option n'est spécifiée que lorsque le protocole est défini surtcpouudp. Si non spécifié, tous les ports sont autorisés (par défaut :65535). --output- Format de sortie. L'un des
JSON. --q, --quiet- Supprimer la sortie prolixe.
Exemples d'interface CLI
ibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound anyibmcloud is security-group-rule-add my-sg inbound anyibmcloud is security-group-rule-add my-sg inbound any --vpc my-vpcibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound icmp --icmp-type 8 --icmp-code 0ibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound any --remote 12.3.2.4ibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound any --remote 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3ibmcloud is security-group-rule-add my-sg inbound any --remote my-sgibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5beaa7c1dcb3 inbound tcp --port-min 4 --port-max 22 --output JSONibmcloud is security-group-rule-add --sg 72b27b5c-f4b0-48bb-b954-5beaa7c1dcb3 --direction inbound --protocol any --local 192.176.3.0ibmcloud vpc-iaas security-group-rule-add --sg-id r134-028d1f0b-9648-41d1-b862-45d9b85b12b7 --direction inbound --protocol gre --local-address 192.176.3.0ibmcloud vpc-iaas security-group-rule-add --sg-id r134-028d1f0b-9648-41d1-b862-45d9b85b12b7 --direction inbound --protocol any --remote-address 12.3.2.4ibmcloud vpc-iaas security-group-rule-add --sg-id r134-028d1f0b-9648-41d1-b862-45d9b85b12b7 --direction inbound --protocol icmp_tcp_udp
Création de règles de groupe de sécurité avec l'API
La demande POST de règle de groupe de sécurité accepte une propriété facultative nommée local, qui possède deux propriétés:
address- Adresse IP à laquelle cette règle autorise le trafic entrant (ou à partir de laquelle, pour les règles sortantes).
cidr_block- Plage d'adresses IP vers laquelle cette règle autorise le trafic entrant (ou à partir de laquelle, pour les règles sortantes).
Si la propriété local n'est pas spécifiée, la valeur par défaut est cidr_block: 0.0.0.0/0.
Vous pouvez créer des règles de groupe de sécurité à l'aide de l'API:
-
Configurez votre Environnement d'API avec les variables correctes.
-
Stockez l'identificateur de groupe de sécurité dans une variable à utiliser dans les commandes d'API:
export security_group_id=<security_group_id> -
Pour créer une règle de groupe de sécurité qui autorise le trafic TCP entrant de la plage d'adresses distante
10.1.2.0/24vers l'adresse IP locale192.168.1.100, exécutez la commande suivante:curl -sX POST "$vpc_api_endpoint/v1/security_groups/$security_group_id/rules?version=$version&generation=2" \ -H "Authorization: Bearer ${iam_token}" \ -d '{ "direction": "inbound", "local": { "address": "192.168.1.100" } "protocol": "tcp", "remote": { "cidr_block": "10.1.2.0/24" } }'Exemple de sortie :
{ "direction": "inbound", "href": "https://us-south.iaas.cloud.ibm.com/v1/security_groups/r006-568b4cc2-b6d1-4ee4-898a-841be283a4cd/rules/r006-8d123cf9-9a4e-48d9-ad5e-dabf1e5b5773", "id": "r006-8d123cf9-9a4e-48d9-ad5e-dabf1e5b5773", "ip_version": "ipv4", "local": { "address": "192.168.1.100" } "protocol": "tcp", "remote": { "cidr_block": "10.1.2.0/24" } }
Création de règles de groupe de sécurité avec Terraform
Pour utiliser Terraform, téléchargez l'interface CLI Terraform et configurez le IBM Cloud plug-in Provider. Pour plus d'informations, voir Initiation à Terraform.
L'exemple Terraform suivant montre comment créer des règles de groupe de sécurité entrantes. Le paramètre local de la ressource accepte une adresse IP ou un bloc CIDR et se trouve également dans l'état de réponse et la réponse des
sources de données ibm_is_security_group_rules et ibm_is_security_group_rule.
resource "ibm_is_security_group_rule" "example2" {
group = ibm_is_security_group.example.id
direction = "inbound"
remote = "127.0.0.1"
local = "192.168.3.0/24"
udp {
port_min = 805
port_max = 807
}
}