通过Okta+阿里云Cloud SSO使用PAI

更新时间:
复制 MD 格式

通过Okta和阿里云Cloud SSO,企业可以实现多账户单点登录。该方案统一身份管理和访问控制,让PAI运维和开发人员使用各自角色登录并访问PAI控制台。

概念介绍

  • 阿里云资源目录

    资源目录RD(Resource Directory)为企业提供多级账号和资源关系管理。详情请参见什么是资源目录

  • 阿里云资源目录的成员

    资源目录中的每个成员都是独立的阿里云主账户,通常对应一个部门。每个成员下可以创建多个Cloud SSO角色账户和RAM账户,代表部门内的员工。

  • 阿里云Cloud SSO

    Cloud SSO基于资源目录RD,为企业提供多账号统一身份管理和访问控制。您只需配置一次企业身份管理系统与阿里云的单点登录,即可统一管理所有用户对RD账号的访问权限。详情请参见什么是云SSO

  • PAI运维账户与普通开发账户

    • PAI运维账户:负责平台运维,如开通PAI、授权PAI服务账户、购买Quota、创建工作空间、添加成员等。

    • PAI普通开发:负责算法开发,如创建训练任务(DLC)、创建推理任务(EAS)等。

解决方案

下图展示通过Okta和阿里云Cloud SSO实现的多账户单点登录方案。该方案简化身份管理和访问控制,支持按角色分配权限,提升安全性。

image

准备工作

  • 已创建阿里云账户,并开通资源目录

  • 已注册Okta账户,且为Okta管理账户。

1. 配置Okta

  1. Okta管理账户登录Okta。后续所有操作都使用Okta管理账户身份。

  2. Applications > Applications页面创建Alibaba Cloud CloudSSO。该应用承载Okta与阿里云Cloud SSO之间的单点登录信任关系。

    单击Create App Integration按钮。

  3. 进入Alibaba Cloud CloudSSO,在Assignments页签下导入企业账户为Okta用户。只有分配了应用的用户才能通过SSO登录阿里云。

    单击Assign按钮,将企业账户分配至该应用。

  4. Sign On页签下配置阿里云单点登录,允许Okta用户通过SSO登录阿里云。Cloud SSO需要这些信息来验证Okta发出的SAML断言。操作详情请参见使用Okta进行用户SSO的示例

    Metadata details区域获取并复制Metadata URL。在Advanced Sign-on Settings区域确认ACS URLEntity ID已正确填入。在Credentials Details区域,将Application username format设置为Email prefixUpdate application username on设置为Create and update

2. 配置阿里云

2.1 配置资源目录

  1. Okta管理账户登录Alibaba Cloud CloudSSO,选择RD管理账户并通过Administrator登录。后续所有操作都使用RD管理账户身份。

  2. 进入资源目录页面,创建资源目录成员。每个成员对应一个需要独立管理资源和权限的部门或项目。

    例如,在Core资源夹下创建成员账号dep2dep1

2.2 配置Cloud SSO

  1. 进入Cloud SSO-访问配置。访问配置定义用户登录后可访问的页面和拥有的权限。

  2. 访问配置页面,分别创建PAI运维访问配置PAI开发访问配置

    关键参数说明如下:

    PAI运维访问配置

    步骤

    说明

    基本信息

    • 访问配置名称:PAI运维访问配置名称,例如PAIOps

    • 初始访问页面:设置为PAI控制台地址https://pai.console.aliyun.com/。设置后,该成员授权的阿里云角色账户和RAM账户登录后直接进入PAI控制台。

    系统策略

    选择使用系统策略,并授权AliyunPAIFullAccess。该策略包含PAI全局管理权限,满足运维账户需求。

    内置策略

    新增内置策略,输入策略名称后,将策略内容修改如下。内置策略补充AliyunPAIFullAccess未覆盖的RAM角色和权限操作。

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "ram:CreateRole",
            "ram:AttachPolicy",
            "ram:GetRole"
          ],
          "Resource": [
            "acs:ram:*:*:role/AliyunODPSPAIDefaultRole",
            "acs:ram:*:*:policy/AliyunODPSPAIRolePolicy",
            "acs:ram:*:*:role/AliyunPAIAccessingOSSRole",
            "acs:ram:*:*:policy/AliyunPAIAccessingOSSRolePolicy",
            "acs:ram:*:*:role/AliyunPAIDLCAccessingOSSRole",
            "acs:ram:*:*:policy/AliyunPAIDLCAccessingOSSRolePolicy",
            "acs:ram:*:*:role/AliyunPAIDLCDefaultRole",
            "acs:ram:*:*:policy/AliyunOSSFullAccess",
            "acs:ram:*:*:policy/AliyunPAIDLCDefaultRolePolicy",
            "acs:ram:*:*:policy/PaiDlcOAuthPolicy",
            "acs:ram:*:*:role/AliyunPAIDSWDefaultRole",
            "acs:ram:*:*:policy/AliyunPAIDSWDefaultRolePolicy"
          ],
          "Effect": "Allow"
        },
        {
          "Action": "ram:CreateServiceLinkedRole",
          "Resource": "*",
          "Effect": "Allow",
          "Condition": {
            "StringEquals": {
              "ram:ServiceName": [
                "eas.pai.aliyuncs.com",
                "label.pai.aliyuncs.com",
                "plugin.pai.aliyuncs.com",
                "aiworkspace.pai.aliyuncs.com",
                "automl.pai.aliyuncs.com",
                "pairec.pai.aliyuncs.com",
                "featurestore.pai.aliyuncs.com",
                "aigc.pai.aliyuncs.com",
                "eas-customer-clusters.pai.aliyuncs.com",
                "langstudio.pai.aliyuncs.com",
                "abtest.pai.aliyuncs.com",
                "llmtrace.pai.aliyuncs.com"
              ]
            }
          }
        }
      ]
    }

    该访问配置将在步骤3中授权给PAI运维账户。

    PAI开发访问配置

    步骤

    说明

    ①基本信息

    访问配置名称:PAI开发访问配置名称,例如PAIDev

    初始访问页面:设置为PAI控制台地址https://pai.console.aliyun.com/。设置后,该成员授权的阿里云角色账户和RAM账户登录后直接进入PAI控制台。

    ②系统策略

    不使用系统策略。PAI开发权限在4.1 PAI运维账户中通过PAI工作空间角色授予,因此访问配置中无需再授权RAM系统策略。

    ③内置策略

    无需新增内置策略,单击关闭即可。开发账户不直接操作RAM资源,因此不需要额外RAM权限。

    该访问配置将在步骤3中授权给PAI普通开发账户。PAI普通开发账户未授予其他阿里云产品权限,因此无法使用PAI以外的阿里云产品。

  3. 单击步骤2.1.2中已创建的成员,为指定用户/组配置权限。只有完成授权,Okta用户登录后才能以对应角色访问该成员下的PAI资源。

    多账号权限管理页面左侧RD目录树中选择目标文件夹(如Core),在右侧成员列表中单击目标成员(如dep2)。

    步骤

    说明

    ①指定用户/组

    选择要添加的Cloud SSO角色账户和RAM账户。这里添加的账户将出现在用户登录后的角色选择列表中。

    说明

    ②指定访问配置

    选择访问配置。访问配置决定用户登录后进入的页面和拥有的权限。

    • 推荐PAI运维账户选择步骤2中创建的PAIOps访问配置。

    • 推荐PAI开发账户选择步骤2中创建的PAIDev访问配置。

    说明

    访问配置同时设置Cloud SSO角色账户和RAM账户登录后访问的阿里云页面及权限。

3. 用户登录阿里云,自动跳转到PAI

  1. 用户登录Okta后,单击Alibaba Cloud CloudSSO图标跳转到阿里云Cloud SSO登录页面。

  2. RAM角色登录页签下,选择步骤2.1.2中创建的资源目录成员(阿里云角色用户)登录。

    注:这里阿里云是服务提供商(SP),Okta是身份提供商(IdP)。

    展开目标云账号(如dep1),在权限列表中找到目标角色,单击该角色的登录链接。

  3. 登录后跳转到PAI控制台首页。

    PAI开通引导页面包含两步:第1认证与授权,完成阿里云实名认证并授予PAI DSW、DLC、Designer等使用阿里云资源的权限;第2开通服务,勾选已授予EAS等服务关联角色所需权限已开通对象存储OSS,在下拉框中选择新建OSS Bucket并绑定至PAI默认工作空间,然后单击一键开通完成开通。

    说明

    当前资源目录的每个成员下,第一个阿里云角色账户打开PAI时可能看到空白页。此时访问该域名即可,之后该成员的其他角色账户都能正常打开PAI。

4. 用户使用PAI

4.1 PAI运维账户

  1. 开通PAI并创建默认工作空间

  2. 开通并授权依赖的阿里云产品

  3. PAI普通开发账户(阿里云角色账户)添加到工作空间。只有加入工作空间后,开发账户才能在该空间内创建训练、推理等任务。

    通过工作空间角色设置开发账户权限。详情请参见管理工作空间-成员及角色配置

    添加成员对话框的待添加列表中,选择目标RAM角色账号(账号名称后缀带有"(Role)"标识),将其移至已选择列表,然后在角色下拉框中选择要分配的工作空间角色,单击确定

    说明
    • 如果搜索不到创建的角色,可手动单击刷新来更新账号列表。

    • 如果官方角色不满足需求,可以创建自定义角色。

4.2 PAI普通开发账户

开发账户登录PAI后,可开发算法、训练模型、部署推理等。详情请参见AI开发

参考文档