聚石台接入模式概览
Oauth授权
step1: RAM 配置Oauth应用管理
获取如下信息:
aliyun.oauth.clientId=xxxxx
aliyun.oauth.clientSecret=xxxxxx
aliyun.oauth.redirectPath=xxxxx
step2: 获取身份信息
按照阿里云 RAM Oauth 的方式实现三方授权,解决身份登录问题,得到关键的 id_token
、access_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应用接入指南进行调用
首先根据
appToken
、idToken
获得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的云主机可依据系统需要对带宽、和机器性能进行动态扩容,升降配,实现资源的弹性扩展,按需付费。
聚石塔的安全规则
ISV部署在聚石塔内的应用不得通过自定义接口与塔外系统进行数据交互,确有塔内系统与塔外系统数据交互的业务场景,须提交业务场景及字段说明,平台审核通过后,开发者应通过开放平台奇门标准接口体系对塔外系统交互.
为了您的数据安全云数据库不允许直接从数据库中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.登录聚石塔,进入控制台
3.进入新控制台
二、容器部署方式详细步骤(推荐方式):
三、虚拟机方式详细步骤:
1.点击“资源视图”进入云产品导航页面
2.选择并点击进入相应的云产品控制台(以云服务ECS控制台为例)
3.选择相应的region,并点击“创建实例”
4.根据实际情况,订购相应的ECS。其他云产品订购流程与ECS基本相同。
4.1.创建应用
4.2.填写应用表单
注意:业务类型请选择”其他云应用“;发布方式请选择”虚拟机发布“
4.3.应用列表
点击查看进入应用详情页
4.4.关联资源
点击右上角”关联资源“,后选择需要关联的资源类型,以ECS为例
5. 应用发布
5.1 点击应用发布
5.2 选择应用的系统架构
5.3 创建发布单
5.4 发布单列表
域名统一接入
SLB处理
因为SLB支持『转发策略』功能,那么可以借助该功能实现path的白名单机制
日志审计
最终策略
因为主账号在阿里云侧,因此,可以基于主账号修改SLB
上线前,在SLB层面接入SLS日志审计
如果有白名单机制:
默认情况下,流量转发的服务器组,都是不可用
设置服务器组,把允许的请求转发的固定服务器组
基于EIP,进行DNS绑定,同时在SLB上上传https证书
建议应用域名
<appName>.<isvdomain>.com
例如公司 monitormaster
monitorapp.monitormaster.com
在文档使用中是否遇到以下问题
更多建议
匿名提交