云服务器内容精选

  • 脚本配置示例 { "auth_request": { "method": "GET", "protocol": "HTTPS", "url_domain": "192.168.10.10", "timeout": 5000, "path": "/", "vpc_channel_enabled": false, "vpc_channel_info": null }, "custom_forbid_limit": 100, "carry_body": { "enabled": true, "max_body_size": 1000 }, "auth_downgrade_enabled": true, "carry_path_enabled": true, "return_resp_body_enabled": false, "carry_resp_headers": [], "simple_auth_mode_enabled": true, "match_auth": null, "rule_enabled": false, "rule_type": "allow" }
  • 配置参数说明 表1 配置参数说明 参数 说明 负载通道 是否使用负载通道作为第三方接口的鉴权服务。 选择“使用”时,配置鉴权服务的负载通道。 选择“不使用”时,配置鉴权服务的访问地址。 后端URL 请求方法 支持GET、POST、PUT、HEAD请求方法。 请求协议 HTTP或HTTPS,传输重要或敏感数据时推荐使用HTTPS。 负载通道(可选) 仅在“使用”负载通道时,需要设置。选择已创建的负载通道名称,如果没有可选的负载通道,您也可以单击“新建负载通道”创建。 后端服务地址(可选) 仅在不使用负载通道时,需要设置。 填写鉴权服务的访问地址,格式:“主机:端口”。主机为鉴权服务的访问IP地址/ 域名 ,未指定端口时,HTTP协议默认使用80端口,HTTPS协议默认使用443端口。 说明: 目前仅支持IPv4地址。 路径 鉴权服务的路径,即服务的url。 后端超时(ms) 鉴权服务请求的超时时间。超时时间不超过后端响应超时时间上限,超时时间上限可在API网关控制台的“配置参数”中查看。 自定义host头域 仅在使用负载通道时配置。 在请求被发送到负载通道中的云服务器前,允许您自定义请求的host头域,默认将使用请求中原始的host头域。 防暴力拦截阈值 当源IP访问在5分钟内进行第三方认证失败的次数达到此处配置的阈值时,将触发源IP请求拦截,在这5分钟后解除请求拦截。 例如,5分钟内,源IP访问在第三分钟进行第三方认证失败的次数达到此处配置的阈值,触发源IP请求拦截,再过2分钟解除请求拦截。 身份来源 将从API原始请求中获取此处配置的参数进行第三方鉴权接口鉴权(最大支持10个header参数和10个query参数)。身份来源信息为空时,携带API原始请求的请求参数(header参数和query参数)调用第三方鉴权接口进行鉴权。 宽松模式 开关开启后,当鉴权服务不可用(与鉴权服务建立连接失败或者鉴权服务返回5xx)时,API网关仍然接受客户端请求。 允许携带原始请求体 开关开启后,将携带API原始请求体调用鉴权接口鉴权。 请求体大小(字节) 仅在开启“允许携带原始请求体”时配置。 请求体大小不能超过实例允许的最大请求体大小。实例的最大请求体大小可在API网关控制台“配置参数”中查看。 允许携带原始请求路径 开关开启后,将API原始请求路径拼接到鉴权接口路径之后调用鉴权接口鉴权。 直接返回鉴权响应 开关开启后,鉴权失败时,将直接返回鉴权服务的响应。 允许携带的响应头部 鉴权成功时,原始请求将从鉴权服务返回的响应头中获取此处配置的头部,传到业务后端。 最大支持配置10个头部。 简易鉴权模式 开关开启后,鉴权服务返回状态码“2xx”时,表示认证通过。 鉴权结果匹配 仅在“简易鉴权模式”关闭后可配置。 根据鉴权服务返回的响应头中的参数名和参数值进行校验,响应头中存在此处配置的参数名,并且参数值相等则认证通过。 黑白名单配置 开关开启后,原始API请求匹配黑/白名单规则将进行/不进行第三方认证鉴权。 规则类型 白名单规则 如果原始API请求匹配白名单规则,将不进行第三方认证鉴权。 黑名单规则 如果原始API请求匹配黑名单规则,将进行第三方认证鉴权。 定义参数 定义用于规则的参数。 说明: 建议不要设置敏感信息,以防泄露。 参数位置:用于规则匹配的参数位置。 path:API请求的URI,系统默认配置。 method:API请求方法,系统默认配置。 header:请求头的key值。 query:QueryString的key值。 system:系统参数。 参数:用于判断与规则中的参数值是否匹配。 定义规则 定义用于规则的判断条件。 单击“添加规则”,编辑规则名称和规则条件。在“条件表达式”弹窗中,选择“定义参数”中的参数名和判断条件,以及输入参数值。 说明: 建议不要设置敏感信息,以防泄露。 =为等于 !=为不等于 pattern为正则表达式 enum为枚举值,多个参数值之间用英文逗号分隔
  • 更新SSL证书 进入证书列表页面,找到待更新证书,在“操作”列单击“编辑”,修改证书信息即可。 更新SSL证书不影响API的调用。 如果待更新证书已绑定独立域名,那么所有访问这个域名的客户端都会看到更新后的证书。 如果更新的SSL证书已绑定独立域名且更新的内容新增CA证书,那么独立域名侧默认关闭“支持客户端认证”即关闭HTTPS双向认证;如果更新的SSL证书已绑定独立域名且更新的内容无CA证书,那么独立域名侧默认关闭“支持客户端认证”即未开启HTTPS双向认证。
  • 转换证书为PEM格式 格式类型 转换方式(通过OpenSSL工具进行转换) CER/CRT 将“cert.crt”证书文件直接重命名为“cert.pem”。 PFX 提取私钥命令,以“cert.pfx”转换为“key.pem”为例。 openssl pkcs12 -in cert.pfx -nocerts -out key.pem 提取证书命令,以“cert.pfx”转换为“cert.pem”为例。 openssl pkcs12 -in cert.pfx -nokeys -out cert.pem P7B 证书转换,以“cert.p7b”转换为“cert.cer”为例。 openssl pkcs7 -print_certs -in cert.p7b -out cert.cer 将“cert.cer”证书文件直接重命名为“cert.pem”。 DER 提取私钥命令,以“privatekey.der”转换为“privatekey.pem”为例。 openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem 提取证书命令,以“cert.cer”转换为“cert.pem”为例。 openssl x509 -inform der -in cert.cer -out cert.pem
  • 配置参数说明 表1 配置参数 参数 配置说明 策略基本信息 Broker地址 填写目标Kafka的连接地址,建立连接关系。多个地址间以英文逗号(,)隔开。 Topic主题 填写目标Kafka上报日志的主题。 Key 填写日志的Key值,表示日志存储在Kafka的指定分区,可以当成有序消息队列使用。如果Key为空,则日志分布式存储在不同的消息分区。 失败重试分配 日志推送到Kafka失败后的重试配置。 重试次数:失败后的重试次数,范围为0-5次。 重试间隔时间:失败后的重试时间间隔,范围为1-10秒。 SASL配置信息 安全协议 连接目标Kafka所使用的安全协议。 PLAINTEXT:默认接入点的用户认证协议。 SASL_PLAINTEXT:SASL用户认证协议。 SASL_SSL:SSL用户认证协议。 消息收发机制 目标Kafka的消息收发机制,默认为PLAIN。 SASL用户名 仅当“安全协议”选择“SASL_PLAINTEXT”或“SASL_SSL”时需配置。 SASL或SSL认证所使用的用户名。 SASL用户密码 仅当“安全协议”选择“SASL_PLAINTEXT”或“SASL_SSL”时需配置。 SASL或SSL认证所使用的用户密码。 确认SASL用户密码 仅当“安全协议”选择“SASL_PLAINTEXT”或“SASL_SSL”时需配置。 填写与SASL用户密码一样的值。 证书内容 仅当“安全协议”选择“SASL_SSL”时需配置。 SSL认证所使用的CA证书内容。 元数据配置信息 系统元数据 推送的日志中,需要携带的系统字段信息。 其中,start_time、request_id、client_ip、request_time、http_status、scheme、request_method、host、uri、upstream_addr、upstream_status、upstream_response_time、http_x_forwarded_for、http_user_agent和error_type字段信息默认在日志中携带,其他系统字段需勾选后才携带。 请求数据 推送的日志中,需要携带的API请求信息。 日志包含请求头域信息:勾选后,需填写日志中要携带的请求Header参数。多个字段间使用英文逗号(,)分隔,支持使用*进行通配设置。 日志包含请求QueryString信息:勾选后,需填写日志中要携带的请求Query参数信息。多个字段间使用英文逗号(,)分隔,支持使用*进行通配设置。 日志包含请求Body体信息:勾选后,日志中会携带API请求的Body体信息。 响应数据 推送的日志中,需要携带的API响应信息。 日志包含响应头域信息:勾选后,需填写日志中要携带的响应Header参数。多个字段间使用英文逗号(,)分隔,支持使用*进行通配设置。 日志包含响应Body体信息:勾选后,日志中会携带响应Body体信息。 自定义认证配置 推送的日志中,需要携带的自定义认证信息。 前端:填写日志中要携带的前端自定义认证的响应字段信息,多个字段间使用英文逗号(,)分隔。 后端:填写日志中要携带的后端自定义认证的响应字段信息,多个字段间使用英文逗号(,)分隔。
  • 添加特殊租户 在流控策略详情页面,单击“特殊租户”,进入特殊租户页面。 单击“添加特殊租户”,弹出“添加特殊租户”对话框。 输入租户信息。 图1 添加特殊租户 表2 特殊租户信息 信息项 描述 租户ID 绑定华为 IAM 认证的API时,租户ID填写API调用者的账号ID。 绑定APP认证的API时,租户ID填写APP所属者的项目ID。 您可以单击控制台右上角的用户名,选择“我的凭证”,在我的凭证页面获取用户的项目ID和账号ID。 阈值 “时长”时间内,此租户访问单个API次数的最大值。 不能大于“API流量限制”值。 单击“确定”,完成特殊租户的添加。
  • 配置参数说明 表1 配置参数说明 信息项 描述 策略名称 API流控策略名称。 类型 分“基础流控”和“共享流控”两类。 基础流控:针对单个API进行流量统计和控制。 共享流控:针对绑定了该策略的所有API进行总流量统计和控制。 时长 流量限制的时长。时长单位支持秒,分钟,小时,天。 与“API流量限制”配合使用,表示“时长”时间内的单个API请求次数上限。 与“用户流量限制”配合使用,表示“时长”时间内的单个用户请求次数上限。 与“凭据流量限制”配合使用,表示“时长”时间内的单个凭据请求次数上限。 与“源IP流量限制”配合使用,表示“时长”时间内的单个IP地址请求次数上限。 API流量限制 单个API被调用次数上限。 与“时长”配合使用,表示“时长”时间内的单个API请求次数上限。 用户流量限制 单个用户调用API次数上限,仅在API的安全认证方式为“华为IAM认证”时适用。 不能大于“API流量限制”的值。 与“时长”配合使用,表示“时长”时间内的单个用户请求次数上限。 如果主账号下有多个子用户访问API,按主账号累计的调用次数进行限制。 说明: 如果希望单独为某个用户添加流量控制策略,可以通过对该策略增加特殊租户实现,具体参考添加特殊租户。增加特殊租户后,此用户调用API次数的上限受增加特殊租户时设置的“阈值”限制,其他用户调用API次数的上限,仍然受本参数值限制。 凭据流量限制 单个凭据调用API次数上限,仅在API的安全认证方式为“APP认证”时适用。 不能大于“API流量限制”的值。 与“时长”配合使用,表示“时长”时间内的凭据请求次数上限。 说明: 如果希望单独为某个凭据添加流量控制策略,可以通过对该策略增加特殊应用实现,具体参考添加特殊应用。增加特殊应用后,此凭据调用API次数的上限受增加特殊应用时设置的“阈值”限制,其他凭据调用API次数的上限,仍然受本参数值限制。 源IP流量限制 单个IP地址调用API次数上限。 不能大于“API流量限制”的值。 与“时长”配合使用,表示“时长”时间内的IP地址请求次数上限。 描述 关于控制策略的描述。
  • 使用流程 图1 签名密钥流程图 在API中心管理控制台创建签名密钥。 将新创建的签名密钥绑定API。 API网关代理将签名后的请求发送到后端服务,此时Authorization头中包含签名信息。后端服务通过不同的开发语言(例如Java、Go、Python、JavaScript、C#、PHP、C++、C等)进行签名,通过比对签名结果和API网关代理传过来的Authorization头中签名是否一致,来校验API网关代理的合法性。
  • 配置参数说明 表1 配置参数说明 信息项 描述 密钥名称 自定义名称,用于识别不同的密钥。 类型 选择签名密钥的认证类型,可选择“HMAC”、“Basic Auth”、“Public Key”和“Aes”。 签名算法 选择Aes的签名算法,包含以下两种: aes-128-cfb aes-256-cfb Key 根据选择的密钥类型,填写不同的密钥信息。 HMAC:填写APP认证所使用密钥对的Key。 Basic Auth:填写basic认证所使用的用户名。 Aes:填写Aes认证所使用的密钥Key。 Public Key:填写Public Key认证所使用的公钥。 Secret 根据选择的密钥类型,填写不同的密钥信息。 HMAC:填写APP认证所使用密钥对的Secret。 Basic Auth:填写basic认证所使用的密码。 Aes:填写Aes认证所使用的向量。 Public Key:填写Public Key认证所使用的私钥。 确认Secret 填写与“Secret”一致的值。
  • 配置参数说明 表1 配置参数说明 参数 配置说明 allowed origins Access-Control-Allow-Origin响应头,指定允许访问API的外域URI,多个URI之间使用英文逗号隔开。 对于未携带身份凭证的请求,可以把参数值设置为“*”,表示允许来自所有域的访问请求。 allowed methods Access-Control-Allow-Methods响应头,指定允许使用的HTTP请求方法,多个请求方法之间使用英文逗号隔开。 allowed headers Access-Control-Allow-Headers响应头,指定XMLHttpRequest请求中允许携带的请求头字段,多个请求头之间使用英文逗号隔开。 其中,简单请求头Accept、Accept-Language、Content-Language、Content-Type(取值仅限为application/x-www-form-urlencoded、multipart/form-data、text/plain时)默认允许在请求中携带,无需在该参数中设置。 exposed headers Access-Control-Expose-Headers响应头,指定XMLHttpRequest请求响应中允许携带的响应头字段,多个响应头之间使用英文逗号隔开。 其中,基本响应头Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma默认允许在响应中携带,无需在该参数中设置。 maximum age Access-Control-Max-Age响应头,指定本次预检请求的有效期,单位为秒。在有效期内,无需再次发出预检请求。 allowed credentials Access-Control-Allow-Credentials响应头,定XMLHttpRequest请求中是否允许携带Cookie。 true表示允许。 false表示不允许。
  • 脚本配置示例 { "allow_origin": "*", "allow_methods": "GET,POST,PUT", "allow_headers": "Content-Type,Accept,Accept-Ranges,Cache-Control", "expose_headers": "X-Request-Id,X-Apig-Latency", "max_age": 172800, "allow_credentials": true}