配置云服务器的访问策略
引导式阅读
Go
配置云服务器的访问策略
作者
C***
上架时间
2023-11-14 09:10:02

版本说明

本示例基于华为云SDK开发

配置云服务器的访问策略

本示例展示如何配置云服务器的访问策略

功能介绍

配置云服务器的访问策略

前置条件

1.已 注册 华为云,并完成 实名认证

2.获取华为云开发工具包(SDK),您也可以查看安装JPython SDK。

3.已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。具体请参见 访问密钥

4.已具备开发环境 ,支持Python3及其以上版本。

SDK获取和安装

具体的SDK版本号请参见 SDK开发中心 (产品类别:虚拟私有云服务)

代码示例

以下代码展示如何配置云服务器的访问策略

from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions.exceptions import ClientRequestException from huaweicloudsdkcore.exceptions.exceptions import ServerResponseException from huaweicloudsdkvpc.v2.vpc_client import VpcClient from huaweicloudsdkvpc.v2.model.list_ports_request import ListPortsRequest from huaweicloudsdkvpc.v2.model.list_security_groups_request import ListSecurityGroupsRequest from huaweicloudsdkvpc.v2.model.update_port_option import UpdatePortOption from huaweicloudsdkvpc.v2.model.update_port_request import UpdatePortRequest from huaweicloudsdkvpc.v2.model.update_port_request_body import UpdatePortRequestBody from huaweicloudsdkvpc.v2.region.vpc_region import VpcRegion import os class VPCPortBindSecurityGroupDemo: """ 配置云服务器的访问策略 """ def __init__(self): pass @staticmethod def main(args): # 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak = os.environ["HUAWEICLOUD_SDK_AK"] sk = os.environ["HUAWEICLOUD_SDK_SK"] # 云服务器id ecs_id = "{ecs_id}" auth = BasicCredentials( ak=ak, sk=sk ) vpc_client = VpcClient.new_builder() \ .with_credentials(credentials=auth) \ .with_region(region=VpcRegion.value_of(region_id="cn-north-4")) \ .build() demo = VPCPortBindSecurityGroupDemo() # 1.通过云服务器的ID查询网卡信息 list_ports_response = demo.list_ports(vpc_client, ecs_id) # 2.查询当前已有的安全组信息 security_groups_response = demo.list_security_groups(vpc_client) port_id = list_ports_response.ports.get(0).id security_group_id = security_groups_response.security_groups.get(0).id # 3.为弹性云服务器添加安全组。 demo.update_port(vpc_client, port_id, security_group_id) def list_security_groups(self, vpc_client): security_groups_request = ListSecurityGroupsRequest( limit=1 ) security_groups_response = None try: security_groups_response = vpc_client.list_security_groups(security_groups_request) print(security_groups_response) except ClientRequestException as e: print(str(e.status_code)) print(e) except ServerResponseException as e: print(str(e.status_code)) print(e.error_msg) return security_groups_response def list_ports(self, vpc_client, ecs_id): list_ports_request = ListPortsRequest( device_id=ecs_id ) list_ports_response = None try: list_ports_response = vpc_client.list_ports(list_ports_request) print(list_ports_response) except ClientRequestException as e: print(str(e.status_code)) print(e) except ServerResponseException as e: print(str(e.status_code)) print(e.error_msg) return list_ports_response def update_port(self, vpc_client, port_id, security_group_id): request = UpdatePortRequest( port_id=port_id, body=UpdatePortRequestBody( port=UpdatePortOption( security_groups=[ security_group_id ] ) ) ) update_port_response = None try: update_port_response = vpc_client.update_port(request) print(update_port_response) except ClientRequestException as e: print(str(e.status_code)) print(e) except ServerResponseException as e: print(str(e.status_code)) print(e.error_msg) return update_port_response

您可以在 虚拟私有云VPC服务文档API Explorer 查看具体信息。

修订记录

发布日期 文档版本 修订说明
2021/11/05 1.0 文档首次发布