首页 >管理控制台 >后端服务开发文档 >聚石塔自管-技术接入指南

聚石塔自管-技术接入指南

介绍聚石塔自管模式的接入相关内容。

聚石台接入模式概览

image.png

Oauth授权

step1: RAM 配置Oauth应用管理

获取如下信息

aliyun.oauth.clientId=xxxxx
aliyun.oauth.clientSecret=xxxxxx
aliyun.oauth.redirectPath=xxxxx

step2: 获取身份信息

按照阿里云访问控制 OAuth 的方式实现三方授权,解决身份登录问题,得到关键的 id_tokenaccess_token

{
  "access_token": "eyJraWQiOiJrMTIzNCIsImVu****",
  "token_type": "Bearer",
  "expires_in": 3600,
  "refresh_token": "Ccx63VVeTn2dxV7ovXXfLtAqLLERA****",
  "id_token": "eyJhbGciOiJIUzI1****"
}

step3: 内容解析

通过 JWT 来进行解析,得到如下结构

{
  "exp": 1517539523,
  "sub": "123456789012****",
  "aud": "4567890123456****",
  "iss": "https:\/\/oauth.aliyun.com",//中国站
  "iat": 1517535923,
  "name": "alice", //登录用户的显示名称
  "login_name":"alice@example.com", // 阿里云账号的登录名
  "aid": "123456789012****", //对应的阿里云账号ID
  "uid": "123456789012****", //登录用户的阿里云账号ID
}

因为阿里云的 Oauth 暂时没办法通过 access_token 进行 OpenAPI 调用,所以需要借助于阿里云的服务角色来实现 OpenAPI 调用。

OpenAPI调用

关于阿里云OpenAPI调用,需要经过三步

step1 权限申请

按照RAM的授权策略,定义插件需要的权限点,例如

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Allow",
            "Action":[
                "ecs:DescribeInstances",
                "ecs:DescribeInstanceTypes"
            ],
            "Resource":[
                "*"
            ],
            "Condition":{

            }
        },
        {
            "Effect":"Allow",
            "Action":[
                "rds:DescribeDBInstances",
                "rds:DescribeAvailableResource"
            ],
            "Resource":[
                "*"
            ],
            "Condition":{

            }
        }
    ]
}

提交给阿里云进行审核,通过后,会创建服务角色。同时阿里云会给 ISV 颁发一个 appToken ,作为 OpenAPI 调用的凭证。

step2 用户 RAM 授权

用户购买插件以后,跳转到 RAM 授权页面,在用户账号下创建服务角色,授予 ISV OpenAPI 调用权限。

授权以后,得到对应的服务角色。该角色,会具有 step1 的授权策略。

当然,开发阶段也可以手动创建服务角色,然后增加权限点。

step3 执行OpenAPI调用

  • 当前的 Endpoint http://100.100.0.242

  • 按照合作时提供的 ISV应用接入指南 文档进行调用

    • 首先根据 appTokenidToken获得 accessToken

    • 根据 accessToken完成 OpenAPI调用

例如

// 获取accessToken,有效期是15分钟
curl http://100.100.0.242/api/acs/queryAccessToken?idToken=xxx&appToken=xxx
// 根据accessToken调用OpenAPI
curl http://100.100.0.242/api/acs/openapi?accessToken=xxx&product=ecs&action=DescribeRegions

聚石塔部署环境介绍

概述

ISV接入企业工作台的第二个步骤就是需要将已经打包好的应用部署在阿里云上。那么首先就需要购买相应的云产品,例如ECS、RDS、OSS、弹性IP等,然后根据应用的架构进行影响的部署,最后进行线上的调试和测试。那么上述这几个步骤我们将借助阿里云“聚石塔”的基础能力来实现。

聚石塔介绍

聚石塔是一套为ISV部署和运维应用的PaaS平台,为ISV可以高效的开发、调试、运维,以及保障数据安全而推出的一项基础服务。通过该服务,ISV的云主机可依据系统需要对带宽、和机器性能进行动态扩容,升降配,实现资源的弹性扩展,按需付费。

聚石塔的安全规则

  1. ISV部署在聚石塔内的应用不得通过自定义接口与塔外系统进行数据交互,确有塔内系统与塔外系统数据交互的业务场景,须提交业务场景及字段说明,平台审核通过后,开发者应通过开放平台奇门标准接口体系对塔外系统交互。

  2. 为了您的数据安全云数据库不允许直接从数据库中dump数据,因此类似into outfile,load_file,mysqldump,Backup table等数据dump的命令会被过滤掉。若有数据dump需求,后续走专门的申请流程(例如提供公司公章等材料),采用dump工具进行数据dump。

聚石塔应用架构规则

规则名称

规则要求

系统部署

购买 ECS 和 RDS,应用部署在 ECS 上,数据库迁移至RDS上。

RDS选型

RDS 类型分为 MYSQL和 SQLSERVER。

数据库安装

ECS 允许安装数据库客户端软件,来管理 RDS 数据库(DB), 但是数据库(DB)不允许安装在 ECS 服务器上

系统架构

应用系统入塔要求使用三层架构,业务逻辑在服务端ECS 上运行,RDS数据只允许 ECS 上服务层访问,客户端只作为应用可视化展现。

API调用

所有API调用要求在塔内发起调用;

业务逻辑

云管理平台系统:

运维工具类系统

其他类型的系统,其主要功能模块涉及到用户的资源数据,业务逻辑必须在塔内运行;

数据存储

涉及订单和用户数据的业务履行处理的数据必须存储在RDS中;

资源订购与应用部署

概览:

一般情况下需要创建两个应用,一个应用作为 Web 应用,即前台工程,用于和前端页面交互以及后端核心业务逻辑交互的应用程序;另一个应用作为后台应用,即后台工程,作为核心业务逻辑层,主要后端业务逻辑编写以及数据持久化和数据库访问。两个应用之间的通信,采用 Dubbo 的服务化框架进行通信。如果是第一次使用聚石塔,可以参考此应用创建实践

应用部署主要基于两种部署方式

1.虚拟机方式

2.容器方式部署(推荐)

一、前置准备工作

1 注册淘宝账号(已有淘宝账号,可以忽略)

2 登录聚石塔,进入控制台

image.png

3 进入新控制台

image.png

二、容器部署方式详细步骤(推荐方式)

步骤说明

三、虚拟机方式详细步骤

1 点击“资源视图”进入云产品导航页面

image.png

2 选择并点击进入相应的云产品控制台(以云服务ECS控制台为例)

image.png

3 选择相应的region,并点击“创建实例”

image.png

4 根据实际情况,订购相应的ECS。其他云产品订购流程与ECS基本相同。

4.1 创建应用

image.png

4.2 填写应用表单

注意:业务类型请选择”其他云应用“;发布方式请选择”虚拟机发布“

image.png

4.3 应用列表

点击查看进入应用详情页

image.png

4.4 关联资源

点击右上角”关联资源“,后选择需要关联的资源类型,以 ECS 为例

image.png

image.png

5 应用发布

5.1 点击应用发布

image.png

5.2 选择应用的系统架构

image.png

5.3 创建发布单

image.png

5.4 发布单列表

image.png

更多内容请参考文档

域名统一接入

SLB处理

因为SLB支持『转发策略』功能,那么可以借助该功能实现path的白名单机制

image.png

日志审计

image.png

最终策略

因为主账号在阿里云侧,因此,可以基于主账号修改 SLB

  • 上线前,在 SLB 层面接入 SLS 日志审计

  • 如果有白名单机制:

    • 默认情况下,流量转发的服务器组,都是不可用;

    • 设置服务器组,把允许的请求转发的固定服务器组;

  • 基于 EIP,进行 DNS 绑定,同时在 SLB 上传 HTTPS 证书

建议应用域名

<appName>.<isvdomain>.com

阿里云首页 管理控制台 相关技术圈