RAM角色登录并使用PAI
本文为您介绍如何使用角色SSO的方式登录PAI。
背景信息
通常,企业用户通过常规登录方式登录阿里云来管理和使用云资源。即在阿里云控制台输入账号和密码后登录。随着企业安全监管要求的日益严格,部分企业更愿意通过角色登录(Role Base_SSO)的方式登录阿里云。详情请参见SAML角色SSO概览。
PAI支持的登录方式
PAI支持云账号登录和角色登录:
通过阿里云账号或RAM用户登录PAI。
您可以通过输入账号和密码的方式登录阿里云控制台,并以当前登录账号的身份使用PAI。此时,阿里云账号将成为PAI中某个工作空间的成员,拥有PAI产品的使用权限。
通过角色SSO的方式登录PAI。
您也可以通过角色SSO的方式登录阿里云控制台并使用PAI。关于角色SSO的更多内容,请参见SAML角色SSO概览。此时,阿里云访问控制角色(RAM role)将成为PAI中某个工作空间的成员,扮演该RAM role的使用者,将拥有和阿里云账号类成员同样的产品使用权限。关于RAM角色的更多内容,请参见RAM角色概览。
角色登录指南
创建RAM角色并配置信任策略。
通过RAM用户扮演角色并添加权限。
如果您需要通过RAM用户来扮演RAM角色,并基于阿里云控制台切换身份的方式扮演该角色,当前可信实体类型可以选择阿里云账号。具体操作步骤如下。
创建可信实体类型为阿里云账号的RAM角色,具体操作,请参见创建可信实体为阿里云账号的RAM角色。
其中:选择信任的云账号参数选择当前云账号。
进入目标角色详情页面,按照下图操作指引,修改信任策略。
信任策略内容修改为如下脚本内容。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::主账号ID:root" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "dataworks.aliyuncs.com" ] } } ], "Version": "1" }
脚本中acs:ram::主账号ID:root中的主账号ID需要替换为需要授权的账号ID。您可以前往用户基本信息页面,获取账号ID。
创建RAM用户。您可以同时创建多个RAM用户,具体操作,详情请参见创建RAM用户。
单击目标RAM用户操作列下的添加权限,为已创建的RAM用户添加AliyunSTSAssumeRoleAccess权限,来获取调用STS服务AssumeRole接口的权限。
通过IdP身份提供商扮演角色并添加权限。
如果您需要通过IdP身份提供商账号登录至阿里云来扮演RAM角色,当前可信实体类型可以选择身份提供商,具体操作步骤如下。
创建可信实体类型为身份提供商的RAM角色,具体操作,详情请参见创建可信实体为身份提供商的RAM角色。
进入目标角色详情页面,按照下图操作指引,修改信任策略。
信任策略内容修改为如下脚本内容。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Federated": [ "acs:ram::主账号ID:saml-provider/IDP" ] }, "Condition": { "StringEquals": { "saml:recipient": "https://signin.aliyun.com/saml-role/sso" } } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "dataworks.aliyuncs.com" ] } } ], "Version": "1" }
脚本中acs:ram::主账号ID:saml-provider/IDP中的主账号ID需要替换为需要授权的账号ID。您可以前往用户基本信息页面,获取账号ID。
配置权限策略。
您可以根据角色用户登录后需要使用的子产品需求,为角色用户添加权限策略。未设置权限策略可能会影响您在工作空间中的部分功能(例如:AI资产管理-数据集等)。建议您为角色用户添加相关的权限策略,具体操作步骤如下。
创建权限策略,例如将策略名称定义为PAIDefaultPolicy,具体操作,可参考样例云产品依赖与授权:Designer。
其中脚本编辑页签的策略内容配置如下。
{ "Version": "1", "Statement": [ { "Action": [ "cs:GetClusterById", "cs:GetClusters", "cs:GetUserConfig", "cs:DescribeClusterNodes", "cs:DescribeClusterInnerServiceKubeconfig", "cs:RevokeClusterInnerServiceKubeconfig" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "vpc:DescribeVSwitchAttributes", "vpc:DescribeVpcs", "vpc:DescribeVSwitches", "vpc:DescribeVpcAttribute" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ecs:DescribeSecurityGroupAttribute", "ecs:DescribeSecurityGroups", "ecs:CreateNetworkInterface", "ecs:DeleteNetworkInterface", "ecs:DescribeNetworkInterfaces", "ecs:CreateNetworkInterfacePermission", "ecs:DescribeNetworkInterfacePermissions", "ecs:DeleteNetworkInterfacePermission" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "nas:DescribeFileSystems", "nas:CreateMountTarget", "nas:DescribeMountTargets", "nas:ModifyMountTarget", "nas:DescribeProtocolMountTarget" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "cr:ListNamespace", "cr:ListRepository", "cr:GetAuthorizationToken", "cr:ListInstanceEndpoint", "cr:PullRepository", "cr:PushRepository", "cr:GetInstance", "cr:GetInstanceVpcEndpoint", "cr:ListInstance", "cr:ListInstanceDomain" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "oss:ListBuckets", "oss:GetObjectMetadata", "oss:GetObject", "oss:ListObjects", "oss:PutObject", "oss:CopyObject", "oss:CompleteMultipartUpload", "oss:AbortMultipartUpload", "oss:InitiateMultipartUpload", "oss:UploadPartCopy", "oss:UploadPart", "oss:DeleteObject" ], "Resource": "acs:oss:*:*:*", "Effect": "Allow" }, { "Action": [ "datasetacc:DescribeInstance", "datasetacc:DescribeSlot", "datasetacc:DescribeEndpoint" ], "Resource": "*", "Effect": "Allow" } ] }
权限策略说明如下。
权限点类型
说明
cs:***
表示容器服务(CS)相关的权限。
vpc:***
表示专有网络(VPC)相关的权限。
ecs:***
表示云服务器服务(ECS)相关的权限。
nas:***
表示文件存储服务(NAS)相关的权限。
cr:***
表示容器镜像服务(ContainerRegistry)相关的权限。
oss:***
表示对象存储服务(OSS)相关的权限。
datasetacc:***
表示数据集加速(DatasetAcc)相关的权限。
在RAM访问控制页面,选择 。
搜索在步骤1中创建的角色,并单击角色名称,进入角色详情页面。
在权限管理页签,单击新增授权,将已创建的权限策略授权给该角色。具体如下图所示。
添加RAM角色至PAI工作空间并授权。
登录PAI控制台开始算法开发工作。