O Platform for AI (PAI) se integra ao Resource Access Management (RAM) para autenticar todas as operações em recursos do PAI. Todas as operações nos subserviços do PAI conectados a workspaces são roteadas para o RAM por meio de APIs de workspace para autenticação. Para implementar um controle de acesso mais refinado que o das funções padrão, anexe a uma função do RAM uma política que inclua o elemento Condition. O PAI avalia as condições na política e passa as propriedades correspondentes para o RAM para autenticação.
Se as funções predefinidas do workspace atenderem aos seus requisitos de controle de acesso, consulte o Anexo: Funções e permissões antes de criar políticas personalizadas.
Chaves de condição compatíveis
O elemento Condition em uma política do RAM especifica quando uma permissão entra em vigor. O PAI é compatível com as seguintes chaves de condição:
|
Chave |
Descrição |
Tipo |
Valores válidos |
|
|
Visibilidade do recurso dentro do workspace |
String |
|
|
|
Indica se o recurso foi criado pelo usuário autenticado |
String |
|
|
|
Endereço IP de origem da solicitação |
String |
Um ou mais endereços IP, usados com o operador de condição |
Se uma política anexada a um usuário do RAM não incluirpai:Accessibilityoupai:EntityAccessTypeno elementoCondition, o RAM ignora essas verificações de propriedade durante a autenticação.
Limitar o acesso por visibilidade e criador do recurso
Anexe políticas com as condições pai:Accessibility e pai:EntityAccessType às funções do RAM para controlar quais recursos cada função pode acessar com base na visibilidade e na propriedade.
O elemento Resource em cada Statement usa o seguinte formato:
acs:<sub-service-code>:<region>:<account-id>:workspace/<workspace-id>/<resource-name>/<resource-id>
Função de desenvolvedor de algoritmos
Para conceder a um desenvolvedor acesso apenas aos seus próprios recursos privados e a todos os recursos públicos, use uma política com duas instruções.
A primeira instrução permite que a função acesse recursos que são privados (pai:Accessibility: PRIVATE) e criados pelo usuário autenticado (pai:EntityAccessType: CREATOR). A segunda instrução permite o acesso a todos os recursos públicos, independentemente do criador.
{
"Version": "1",
"Statement": [
{
"Action": [
"pai:*"
],
"Resource": "acs:paidsw:*:*:*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"pai:Accessibility": "PRIVATE",
"pai:EntityAccessType": "CREATOR"
}
}
},
{
"Action": [
"pai:*"
],
"Resource": "acs:paidsw:*:*:*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"pai:Accessibility": "PUBLIC"
}
}
}
]
}
Função de administrador
Para conceder a uma função acesso irrestrito a todos os recursos no workspace — independentemente de quem criou ou da visibilidade — omita totalmente o elemento Condition. O RAM concede acesso sem verificar pai:Accessibility ou pai:EntityAccessType.
{
"Version": "1",
"Statement": [
{
"Action": [
"pai:*"
],
"Resource": "acs:paidsw:*:*:*",
"Effect": "Allow"
}
]
}
Outras funções
As políticas para outras funções do workspace seguem o mesmo padrão da função de desenvolvedor de algoritmos. O elemento Condition permanece o mesmo; apenas o elemento Action muda com base nas permissões atribuídas a cada função.
Limitar o acesso por endereço IP
Para bloquear solicitações de endereços IP específicos, anexe uma política com Effect: Deny e a chave de condição acs:SourceIp à função do RAM. Use o operador de condição IpAddress e especifique os endereços bloqueados. Quando uma solicitação se origina de um endereço IP listado, o RAM rejeita o acesso aos recursos especificados.
A política a seguir nega todas as ações em recursos eas e pai* quando a solicitação vem de 192.0.2.100 ou 203.0.113.200:
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "*",
"Resource": [
"acs:eas:*:*:*",
"acs:pai*:*:*:*"
],
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"192.0.2.100",
"203.0.113.200"
]
}
}
}
]
}
O elementoResourcesegue o formatoacs:<sub-service-ram-code>:<region>:<account-id>:workspace/<workspace-id>/<resource-name-plural>/<resource-id>.
Como funciona
Quando um usuário do RAM solicita acesso a um objeto de API do PAI, o PAI avalia as propriedades do recurso e chama a API do RAM para autenticação. O RAM concede acesso somente quando ambas as condições são verdadeiras:
O usuário do RAM tem permissão para executar a ação solicitada no recurso.
Os valores de propriedade de tempo de execução que o PAI passa para o RAM (como
pai:Accessibilityepai:EntityAccessType) correspondem aos valores definidos no elementoConditionda política anexada.