Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ VPC Endpoint/ Referencia de la API/ API/ Puntos de conexión de VPC/ Modificación de la política de un punto de conexión de VPC de gateway
Actualización más reciente 2024-09-14 GMT+08:00

Modificación de la política de un punto de conexión de VPC de gateway

Función

Esta API se utiliza para modificar la política de un punto de conexión de VPC para acceder a servicios de punto de conexión de VPC de gateway.

Método de invocación

Para obtener más información, consulte Invocación a las API.

URI

PUT /v1/{project_id}/vpc-endpoints/{vpc_endpoint_id}/policy

Tabla 1 Parámetros de enrutamiento

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

Especifica el ID del proyecto.

Mínimo: 1

Máximo: 64

vpc_endpoint_id

String

Especifica el ID del punto de conexión de la VPC.

Mínimo: 1

Máximo: 64

Parámetros de solicitud

Tabla 2 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

String

Especifica el token de usuario. Se puede obtener invocando a la API de IAM. El valor de X-Subject-Token en el encabezado de respuesta es el token de usuario.

Content-Type

No

String

Especifica el tipo MIME del cuerpo de la solicitud. Se recomienda el valor application/json. Para las API utilizadas para cargar objetos o imágenes, el tipo MIME varía en función del tipo de flujo.

Valor predeterminado: application/json

Tabla 3 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

policy_statement

Array of PolicyStatement objects

Solo se involucran los puntos de conexión de VPC de gateway con ambos extremos fijos.

Tabla 4 PolicyStatement

Parámetro

Obligatorio

Tipo

Descripción

Effect

String

Especifica si se debe aceptar o rechazar el objeto o los permisos de OBS.

Action

Array of strings

Especifica los permisos del acceso de OBS.

Resource

Array of strings

Especifica el objeto de OBS.

Parámetros de respuesta

Código de estado: 200

Tabla 5 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

id

String

Especifica el ID único del punto de conexión de VPC.

Mínimo: 1

Máximo: 64

service_type

String

Especifica el tipo de servicio de punto de conexión de VPC al que se conecta el punto de conexión de VPC.

  • gateway: Indica los servicios de punto de conexión de VPC configurados por el personal de O&M. Puede usarlos directamente sin crearlos usted mismo.

  • interface: indica los servicios en la nube configurados por el personal de O&M y los servicios privados creados por ustedes. No puede configurar estos servicios en la nube, pero puede utilizarlos. Puede consultar los servicios de punto de conexión públicos de VPC para ver los servicios de punto de conexión de VPC visibles y accesibles para todos los usuarios y configurados por el personal de O&M. Se pueden crear servicios de punto de conexión de VPC de interfaz.

status

String

Especifica el estado del punto de conexión de la VPC.

  • pendingAcceptance: Se aceptará el punto de conexión de VPC.

  • creating: Se está creando el punto de conexión de VPC.

  • accepted: Se ha aceptado el punto de conexión de VPC.

  • rejected: Se ha rechazado el punto de conexión de VPC.

  • failed: No se pudo crear el punto de conexión de VPC.

  • deleting: Se está eliminando el punto de conexión de VPC.

active_status

Array of strings

Especifica el estado de la cuenta.

  • frozen: La cuenta está congelada.

  • active: La cuenta está normal.

endpoint_service_name

String

Especifica el nombre del servicio de punto de conexión de VPC.

marker_id

Integer

Especifica el ID de paquete del punto de conexión de VPC.

endpoint_service_id

String

Especifica el ID del servicio de punto de conexión de VPC.

Mínimo: 1

Máximo: 64

enable_dns

Boolean

Especifica si se debe crear un nombre de dominio.

  • true: cree un nombre de dominio.

  • false: no cree un nombre de dominio. Nota Al crear un punto de conexión de VPC para conectarse a un servicio de punto de conexión de VPC de gateway, no se crea ningún nombre de dominio, independientemente de si enable_dns está configurado como true o false.

dns_names

Array of strings

Especifica el nombre de dominio para acceder al servicio de punto de conexión de VPC asociado. Este parámetro está disponible cuando enable_dns se establece en true.

Mínimo: 0

Máximo: 32

ip

String

Especifica la dirección IP para acceder al servicio de punto de conexión de VPC asociado. Este parámetro solo se devuelve en las siguientes condiciones:

  • Se consulta un punto de conexión de VPC para acceder a un servicio de punto de conexión de VPC de interfaz.

  • La aprobación de conexión está habilitada para el servicio de punto de conexión de VPC y la conexión ha sido aprobada. status del punto de conexión de VPC puede ser accepted o rejected. El estado rejected solo aparece cuando se acepta y luego se rechaza el punto de conexión de VPC.

Mínimo: 1

Máximo: 64

vpc_id

String

Especifica el ID de la VPC donde se creará el punto de conexión de VPC.

Mínimo: 1

Máximo: 64

subnet_id

String

Especifica el ID de la subred en la VPC especificada por vpc_id. El ID está en formato UUID.

Mínimo: 1

Máximo: 64

created_at

String

Especifica cuándo se creó el punto de conexión de VPC. Se utiliza el formato de hora de UTC AAAA-MM-DDTHH:MM:SSZ.

updated_at

String

Especifica el tiempo de actualización del punto de conexión de VPC. Se utiliza el formato de hora de UTC AAAA-MM-DDTHH:MM:SSZ.

project_id

String

Especifica el ID del proyecto. Para obtener detalles sobre cómo obtener el ID de proyecto, consulte "Obtención de un ID de proyecto".

Mínimo: 1

Máximo: 64

tags

Array of TagList objects

Especifica la lista de etiquetas consultadas. Si no hay ninguna etiqueta coincidente, se devuelve una matriz vacía.

error

Array of QueryError objects

Especifica el mensaje de error. Este campo se devuelve cuando el punto de conexión de VPC es anormal, es decir, el valor de status es failed.

whitelist

Array of strings

Especifica la lista blanca para controlar el acceso al punto de conexión de VPC. Si no especifica este parámetro, se devolverá una lista blanca vacía. Este parámetro solo está disponible cuando se crea un punto de conexión de VPC para conectarse a un servicio de punto de conexión de VPC de interfaz.

Mínimo: 0

Máximo: 32

Longitud del arreglo: 1 - 1000

enable_whitelist

Boolean

Especifica si el control de acceso está habilitado.

  • true: El control de acceso está habilitado.

  • false: El control de acceso está desactivado. Si no especifica este parámetro, se desactiva el control de acceso. Este parámetro solo está disponible cuando se crea un punto de conexión de VPC para conectarse a un servicio de punto de conexión de VPC de interfaz.

routetables

Array of strings

Especifica los ID de las tablas de enrutamientos. Si no se especifica este parámetro, se devuelve el ID de la tabla de enrutamiento de la VPC predeterminada. Este parámetro solo está disponible cuando se crea un punto de conexión de VPC para conectarse a un servicio de punto de conexión de VPC de gateway.

Mínimo: 0

Máximo: 64

description

String

Especifica el campo de descripción. El valor puede contener caracteres como letras y dígitos, pero no puede contener signos menores que (<) ni mayores que signos (>).

Mínimo: 0

Máximo: 512

policy_statement

Array of PolicyStatement objects

Este campo aparece en el cuerpo de la respuesta solo para los puntos de conexión de VPC que tengan configuradas políticas de punto de conexión de VPC y de bucket de OBS.

Longitud del arreglo: 0 - 10

endpoint_pool_id

String

(Se descartará) Especifica el ID del clúster asociado al punto de conexión de VPC.

Mínimo: 1

Máximo: 64

public_border_group

String

Especifica la información sobre el grupo de borde público asociado con el punto de conexión de VPC. Este parámetro se devuelve solo cuando el punto de conexión de VPC está asociado con un grupo de bordes.

Tabla 6 TagList

Parámetro

Tipo

Descripción

key

String

Especifica la clave de etiqueta. Una clave de etiqueta contiene un máximo de 36 caracteres de Unicode. No puede quedar en blanco. No puede contener signos iguales (=), asteriscos (*), menos que signos (<), mayor que signos (>), barras invertidas (), comas (,), barras verticales (|), y barras (/), y los caracteres primero y último no pueden ser espacios.

Mínimo: 1

Máximo: 36

value

String

Especifica la clave de etiqueta. Un valor de etiqueta contiene un máximo de 43 caracteres y puede ser una cadena vacía. No puede contener signos iguales (=), asteriscos (*), menos que signos (<), mayor que signos (>), barras invertidas (), comas (,), barras verticales (|), y barras (/), y los caracteres primero y último no pueden ser espacios.

Mínimo: 1

Máximo: 43

Tabla 7 QueryError

Parámetro

Tipo

Descripción

error_code

String

Código de error.

Mínimo: 0

Máximo: 10

error_message

String

Mensaje de error.

Mínimo: 0

Máximo: 1024

Tabla 8 PolicyStatement

Parámetro

Tipo

Descripción

Effect

String

Especifica si se debe aceptar o rechazar el objeto o los permisos de OBS.

Action

Array of strings

Especifica los permisos del acceso de OBS.

Resource

Array of strings

Especifica el objeto de OBS.

Ejemplo de solicitudes

Modificación de la política de un punto de conexión de VPC de gateway (Establezca Action a obs::, Resource a obs::::/* y a obs:::: y Effect a ** Allow**)

PUT https://{endpoint}/v1/{project_id}/vpc-endpoints/938c8167-631e-40a4-99f9-493753fbd16b/policy

{
  "policy_statement" : [ {
    "Action" : [ "obs:*:*" ],
    "Resource" : [ "obs:*:*:*:*/*", "obs:*:*:*:*" ],
    "Effect" : "Allow"
  } ]
}

Ejemplo de respuestas

Código de estado: 200

El servidor procesó correctamente la solicitud.

{
  "id" : "938c8167-631e-40a4-99f9-493753fbd16b",
  "status" : "accepted",
  "tags" : [ ],
  "marker_id" : 302035929,
  "active_status" : [ "active" ],
  "vpc_id" : "0da03835-1dcf-4361-9b87-34139d58dd59",
  "service_type" : "gateway",
  "project_id" : "0605767a3300d5762fb7c0186d9e1779",
  "routetables" : [ "99477d3b-87f6-49d2-8f3b-2ffc72731a38" ],
  "created_at" : "2022-08-03T03:03:54Z",
  "updated_at" : "2022-08-03T03:03:57Z",
  "endpoint_service_id" : "4651bc78-5cec-41b7-b448-f77326ebbed0",
  "endpoint_service_name" : "br-abc-aaa1.obs_test.4651bc78-5cec-41b7-b448-f77326ebbed0",
  "policy_statement" : [ {
    "Action" : [ "obs:*:*" ],
    "Resource" : [ "obs:*:*:*:*/*", "obs:*:*:*:*" ],
    "Effect" : "Allow"
  } ],
  "description" : "",
  "endpoint_pool_id" : "b0ad6a4f-55c0-43f1-a26d-278639661fc2"
}

Ejemplo de código del SDK

El ejemplo de código del SDK es el siguiente.

Java

Modificación de la política de un punto de conexión de VPC de gateway (Establezca Action a obs::, Resource a obs::::/* y a obs:::: y Effect a ** Allow**)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.vpcep.v1.region.VpcepRegion;
import com.huaweicloud.sdk.vpcep.v1.*;
import com.huaweicloud.sdk.vpcep.v1.model.*;

import java.util.List;
import java.util.ArrayList;

public class UpdateEndpointPolicySolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        VpcepClient client = VpcepClient.newBuilder()
                .withCredential(auth)
                .withRegion(VpcepRegion.valueOf("cn-north-4"))
                .build();
        UpdateEndpointPolicyRequest request = new UpdateEndpointPolicyRequest();
        UpdateEndpointPolicyRequestBody body = new UpdateEndpointPolicyRequestBody();
        List<String> listPolicyStatementResource = new ArrayList<>();
        listPolicyStatementResource.add("obs:*:*:*:*/*");
        listPolicyStatementResource.add("obs:*:*:*:*");
        List<String> listPolicyStatementAction = new ArrayList<>();
        listPolicyStatementAction.add("obs:*:*");
        List<PolicyStatement> listbodyPolicyStatement = new ArrayList<>();
        listbodyPolicyStatement.add(
            new PolicyStatement()
                .withEffect("Allow")
                .withAction(listPolicyStatementAction)
                .withResource(listPolicyStatementResource)
        );
        body.withPolicyStatement(listbodyPolicyStatement);
        request.withBody(body);
        try {
            UpdateEndpointPolicyResponse response = client.updateEndpointPolicy(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Python

Modificación de la política de un punto de conexión de VPC de gateway (Establezca Action a obs::, Resource a obs::::/* y a obs:::: y Effect a ** Allow**)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkvpcep.v1.region.vpcep_region import VpcepRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkvpcep.v1 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.getenv("CLOUD_SDK_AK")
    sk = os.getenv("CLOUD_SDK_SK")

    credentials = BasicCredentials(ak, sk) \

    client = VpcepClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(VpcepRegion.value_of("cn-north-4")) \
        .build()

    try:
        request = UpdateEndpointPolicyRequest()
        listResourcePolicyStatement = [
            "obs:*:*:*:*/*",
            "obs:*:*:*:*"
        ]
        listActionPolicyStatement = [
            "obs:*:*"
        ]
        listPolicyStatementbody = [
            PolicyStatement(
                effect="Allow",
                action=listActionPolicyStatement,
                resource=listResourcePolicyStatement
            )
        ]
        request.body = UpdateEndpointPolicyRequestBody(
            policy_statement=listPolicyStatementbody
        )
        response = client.update_endpoint_policy(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

Modificación de la política de un punto de conexión de VPC de gateway (Establezca Action a obs::, Resource a obs::::/* y a obs:::: y Effect a ** Allow**)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    vpcep "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := vpcep.NewVpcepClient(
        vpcep.VpcepClientBuilder().
            WithRegion(region.ValueOf("cn-north-4")).
            WithCredential(auth).
            Build())

    request := &model.UpdateEndpointPolicyRequest{}
	var listResourcePolicyStatement = []string{
        "obs:*:*:*:*/*",
	    "obs:*:*:*:*",
    }
	var listActionPolicyStatement = []string{
        "obs:*:*",
    }
	var listPolicyStatementbody = []model.PolicyStatement{
        {
            Effect: "Allow",
            Action: listActionPolicyStatement,
            Resource: listResourcePolicyStatement,
        },
    }
	request.Body = &model.UpdateEndpointPolicyRequestBody{
		PolicyStatement: listPolicyStatementbody,
	}
	response, err := client.UpdateEndpointPolicy(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

Otro más

Para obtener un ejemplo de código del SDK de más lenguajes de programación, consulta la ficha Ejemplo de código en API Explorer. El ejemplo de código del SDK se puede generar automáticamente.

Códigos de estado

Código de estado

Descripción

200

El servidor procesó correctamente la solicitud.

Códigos de error

Consulte Códigos de error.