Pasos a seguir para crear una regla de entrada de firewall.
Prerequisitos
OrganizationId
Necesitaremos conocer nuestro organizacionId.
Para obtener dicha información utilizaremos este endpoint :
GET : /api-gateway/core/v1/organizations
Ejemplo Respuesta :
{
"data": [
{
"id": "1",
"name": "Nombre Organizacion"
}
],
"meta": {
"correlationId": "5b1c3dc2-ffe9-4a72-8944-a75d385094f1",
"timestamp": "2025-05-05T14:26:10Z"
}
}
ServerSubscriptionId
Necesitamos obtener el serverSubscriptionId del servidor del que queremos obtener los datos. Será el valor de id el que recuperaremos. Para ello utilizamos este endpoint :
GET: /api-gateway/servers/v1/organizations/{organizationId}/subscriptions
Ejemplo Respuesta:
{
"data": [
{
"id": "7002",
"name": "Test Server",
"createdAt": "2025-04-11T12:03:15.000Z",
"updatedAt": "2025-04-11T12:03:31.000Z"
},
{
"id": "7005",
"name": "Servidores #1",
"createdAt": "2025-04-11T12:15:03.000Z",
"updatedAt": "2025-04-11T12:15:05.000Z"
}
],
"meta": {
"correlationId": "72569db4-32a8-42d1-ae66-6fcd65794dcb",
"timestamp": "2025-05-07T15:26:15Z"
}
}
MainNetworkId
Necesitamos obtener el mainNetworkId que ira asociada a esta regla de firewall. A día de hoy, las que pueden ser mainNetworkId son las redes isoladas.
Si no tenemos ninguna red compatible con mainNetwork, tendremos primero que crearla. Para ello seguir estos pasos: Crear red isolada.
Necesitaremos obtener el id en este endpoint :
GET: /api-gateway/servers/v1/subscriptions/{subscriptionId}/networks/isolated-networks
Ejemplo Respuesta:
{
"data": [
{
"id": "2229",
"subscriptionId": "7002",
"mainNetworkId": "2229",
"name": "INT-pre15-SAJU00-EU-DEV1-556",
"gateway": "10.0.0.254",
"netmask": "255.255.255.0",
"cidr": "10.0.0.0/24",
"zone": "EU-DEV1",
"createdAt": "2025-04-11T12:03:55.000Z",
"updatedAt": "2025-04-11T12:03:55.000Z"
},
{
"id": "2232",
"subscriptionId": "7002",
"mainNetworkId": "2232",
"name": "Test Network 0",
"gateway": "192.168.10.1",
"netmask": "255.255.255.0",
"cidr": "192.168.10.0/24",
"zone": "EU-DEV1",
"createdAt": "2025-04-11T12:07:18.000Z",
"updatedAt": "2025-04-11T12:07:18.000Z"
}
],
"meta": {
"correlationId": "fc48de38-32d5-4c79-9003-06ea3da8a363",
"timestamp": "2025-05-07T15:50:08Z"
}
}
PublicNetworkId
Así mismo, se necesita el id de una ip pública que ya tengamos dada de alta en nuestro servidor.
Podemos acceder su id a través del siguiente endpoint:
GET: /api-gateway/servers/v1/subscriptions/{subscriptionId}/networks/public-ips
Ejemplo Respuesta:
{
"data": [
{
"id": "2100",
"ipAddress": "149.88.9.5",
"mainNetworkId": "2229",
"sourceNat": true,
"staticNat": false,
"zone": "EU-DEV1"
},
{
"id": "2103",
"ipAddress": "149.88.9.47",
"mainNetworkId": "2232",
"sourceNat": true,
"staticNat": false,
"zone": "EU-DEV1"
}
],
"meta": {
"correlationId": "70573895-223e-4dab-b5ff-94ba05b8017c",
"timestamp": "2025-05-08T12:48:15Z"
}
}
ServerInstanceId (Sólo para protocolos UCP/UDP)
Necesitamos obtener el serverInstanceId del servidor del que queremos obtener los datos. Será el valor de id el que recuperaremos. Para ello utilizamos este endpoint :
GET: /api-gateway/servers/v1/subscriptions/{subscriptionId}/instances
Ejemplo Respuesta:
{
"data": [
{
"id": "3333",
"subscriptionId": "7002",
"zone": "EU-DEV1",
"templateId": "Ubuntu 24.04 LTS x64",
"offeringId": "1 Core - 1GB RAM",
"state": "running",
"name": "Test",
"createdAt": "2025-04-11T12:03:52.000Z",
"updatedAt": "2025-04-11T12:04:48.000Z"
}
],
"meta": {
"correlationId": "e8a85097-e478-4c4e-8ead-80adeac5437b",
"timestamp": "2025-05-07T15:33:33Z"
}
}
NicId (Sólo para protocolos UCP/UDP)
Necesitamos obtener el nicId (identificador de la tarjeta de red). Para ello utilizamos este endpoint y recuperaremos el valor id, de la tarjeta de red que queramos utilizar :
GET: /api-gateway/servers/v1/subscriptions/{subscriptionId}/instances/{instanceId}/nics
Ejemplo Respuesta:
{
"data": [
{
"id": "2163",
"mainNetworkId": "2229",
"addressIpPrimary": "10.0.0.248",
"isDefault": true,
"mac": "02:00:7b:2f:00:01"
},
{
"id": "2166",
"mainNetworkId": "2232",
"addressIpPrimary": "192.168.10.149",
"isDefault": false,
"mac": "02:00:17:74:00:01"
}
],
"meta": {
"correlationId": "f9361103-c1a4-412a-a005-5e307de13d46",
"timestamp": "2025-05-07T15:44:16Z"
}
}
PrivateNicAddressIpId (Sólo para protocolos UCP/UDP)
Por último necesitamos obtener el El Id de la dirección IP interna de la tarjeta de red de la instancia.
Podemos acceder su id a través del siguiente endpoint:
GET: /api-gateway/servers/v1/subscriptions/{subscriptionId}/instances/{instanceId}/nics/{nicId}/ips
Ejemplo Respuesta:
{
"data": [
{
"id": "2160",
"ip": "10.0.0.248",
"instanceNicId": "2163"
}
],
"meta": {
"correlationId": "9e19e6df-1782-47a9-b9e3-9a79c1405452",
"timestamp": "2025-05-07T16:34:42Z"
}
}
Resumen
-
Verbo HTTPS : POST
-
Endpoint :
/api-gateway/servers/v1/subscriptions/{subscriptionId}/networks/{mainNetworkId}/firewalls/inbounds/rules
-
Parámetros en el path :
-
subscriptionId (del servidor)
-
mainNetworkId
-
-
Parámetros en el body
Campo | Tipo | Obligatorio | Descripción | Ejemplo |
---|---|---|---|---|
protocol | enum | Sí | Protocolo a utilizar: TCP, UDP, ICMP | "TCP" |
publicNetworkId | string | Sí | Id de la red pública a asociar | "2100" |
privateNicAddressIpId | string | Sí para protocolos TCP/UDP | ID de la dirección IP interna de la tarjeta de red de la instancia | "2160" |
icmpType | integer | Sí para protocolo ICMP | Valor de icmpType . Por defecto -1 | -1 |
icmpCode | integer | Sí para protocolo ICMP | Código ICMP. Por defecto -1 | -1 |
publicPort | integer | Sí para protocolos TCP/UDP | Puerto público | 0 |
privatePort | integer | Sí para protocolos TCP/UDP | Puerto privado | 0 |
origin | string | Sí | Origen de la IP | 10.0.0.1 |
- Request Body (TCP/UDP)
{
"data": {
"protocol": "TCP",
"publicNetworkId": "2100",
"privateNicAddressIpId": "2160",
"publicPort": 0,
"privatePort": 0,
"origin": "10.0.0.1"
},
"meta": {
"requestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"timestamp": "2025-05-08T13:12:18.023Z"
}
}
- Request Body (ICMP)
{
"data": {
"protocol": "TCP",
"publicNetworkId": "2100",
"icmpType": -1,
"icmpCode": -1,
"origin": "10.0.0.1"
},
"meta": {
"requestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"timestamp": "2025-05-08T13:12:18.023Z"
}
}
- Response (201 Created)
{
"data": {
"protocol": "TCP",
"publicNetworkId": "2100",
"privateNicAddressIpId": "2160",
"publicPort": 0,
"privatePort": 0,
"origin": "10.0.0.1"
"id": "1058"
},
"meta": {
"correlationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
"timestamp": "2025-05-08T13:12:18.023Z"
}
}