

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurar permissões
<a name="permission-setup"></a>

## Funções necessárias para o complemento e suas dependências
<a name="permission-setup-addon"></a>

### Funções do IAM necessárias para SageMaker espaços em SageMaker HyperPod
<a name="role-hyperpod"></a>

Ao ativar **SageMaker os recursos do Spaces (também conhecido como SageMaker ** **IDE/Notebooks)** em um cluster SageMaker HyperPod (EKS), várias funções do IAM devem ser criadas e atribuídas. Essas funções oferecem suporte a acesso seguro, roteamento, sessões remotas de IDE e provisionamento de armazenamento do EBS. A tabela a seguir resume as quatro funções e quando elas são necessárias.

### Tabela de resumo de funções
<a name="role-table"></a>


| Perfil do IAM | Obrigatório? | Finalidade | Quem o usa? | Personalização permitida pelo SageMaker console? | 
| --- | --- | --- | --- | --- | 
| Função de execução do complemento Spaces | Sempre necessário | Permite que o controlador Spaces gerencie Spaces, gere sessões pré-assinadas e gerencie URLs sessões de SSM | Pod controlador adicional (privilegiado) | ✔ Sim | 
| Função do roteador no cluster | Necessário para acesso ao WebUI | Permite que o pod do roteador execute operações KMS para assinatura JWT (autenticação WebUI) | Pod de roteador no cluster (privilegiado) | ✔ Sim | 
| Função de instância gerenciada do SSM | Necessário para acesso remoto ao IDE | Usado pelo sidecar do agente SSM para SSH-over-SSM sessões remotas de IDE | Pods do SSM Agent in Space IDE (não é um pod complementar) | ✔ Sim | 
| Função do IAM para o complemento do driver EBS CSI | Sempre necessário | Permite que o driver EBS CSI use create/attach/modify volumes para cargas de trabalho do Spaces | Complemento do driver EBS CSI | Criado automaticamente | 
| Função do IAM para complemento de DNS externo | Necessário para acesso ao WebUI | Ele garante que os endpoints do Space e os componentes do cluster possam receber nomes DNS automaticamente nas zonas hospedadas do Route 53 do cliente. | Complemento de DNS externo | Criado automaticamente | 

### 1. Função de execução do complemento Spaces (obrigatória)
<a name="add-n-execution-role"></a>

A função de execução do complemento Spaces é sempre necessária porque é usada pelo pod controlador do complemento SageMaker Spaces, um componente administrativo instalado por meio do complemento EKS. Essa função permite que o controlador gerencie espaços, provisione recursos, interaja com o SSM e gere pré-assinados URLs para acesso remoto ao IDE e ao WebUI. Ele também suporta o acesso KMS usado para assinatura de solicitações para autenticar as solicitações https do WebUI. Essa função pode ser criada automaticamente quando o complemento SageMaker Spaces é instalado por meio do SageMaker console. Para criação manual, AWS fornece a política `AmazonSageMakerSpacesControllerPolicy` gerenciada.

**Política de confiança de referência**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "pods.eks.amazonaws.com"
      },
      "Action": [
          "sts:AssumeRole",
          "sts:TagSession"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{accountId}}",
          "aws:SourceArn": "arn:aws:eks:{{region}}:{{accountId}}:cluster/{{eksClusterName}}"
        }
      }
    }
  ]
}
```

### 2. Função de roteador no cluster (necessária para autenticação WebUI)
<a name="in-cluster-role"></a>

A função In-Cluster Router é usada pelo **pod do roteador**, um componente privilegiado que autentica as sessões do Spaces WebUI. O roteador usa uma chave KMS para criar e assinar tokens JWT que autorizam o acesso do usuário a espaços específicos. Essa função permite que o pod do roteador gere chaves de dados e as descriptografe. Semelhante à função de controlador, ela reforça a segurança usando restrições de escopo baseadas em tags e clusters. Essa função pode ser gerada automaticamente quando o complemento Spaces é instalado por meio do AWS SageMaker console, mas os clientes podem criá-la manualmente.

**Política de confiança de referência**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "pods.eks.amazonaws.com"
      },
      "Action": [
          "sts:AssumeRole",
          "sts:TagSession"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{accountId}}",
          "aws:SourceArn": "arn:aws:eks:{{region}}:{{accountId}}:cluster/{{eksClusterName}}"
        }
      }
    }
  ]
}
```

**Política de permissão de referência**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KMSDescribeKey",
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:{{region}}:{{accountId}}:key/{{kmsKeyId}}"
        },
        {
            "Sid": "KMSKeyOperations",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:{{region}}:{{accountId}}:key/{{kmsKeyId}}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:sagemaker:component": "amazon-sagemaker-spaces",
                    "kms:EncryptionContext:sagemaker:eks-cluster-arn": "${aws:PrincipalTag/eks-cluster-arn}"
                }
            }
        }
    ]
}
```

### 3. Função de instância gerenciada do SSM (necessária para acesso remoto ao IDE)
<a name="ssm-role"></a>

A função de instância gerenciada do SSM é passada ao registrar a instância gerenciada do SSM para habilitar o acesso remoto ao IDE. Essa função permite que o agente do SSM registre o pod como uma instância gerenciada do SSM e use os canais do SSM Session Manager para conectividade do IDE remoto (SSH sobre SSM). Ele pode ser criado automaticamente ao usar o AWS SageMaker console. Para implantações manuais, os clientes devem criar essa função e fornecê-la ao complemento Spaces. O pod do controlador em si não assume essa função; ele só a fornece durante a chamada`ssm:CreateActivation`.

**Política de confiança de referência**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ssm.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{account}}"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:ssm:{{region}}:{{account}}:*"
                }
            }
        }
    ]
}
```

**Política de permissões de referência**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ssm:DescribeAssociation"
      ],
      "Resource": [
        "arn:aws:ssm:{{region}}:{{account}}:association/*",
        "arn:aws:ssm:{{region}}:{{account}}:document/*",
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:GetDocument",
        "ssm:DescribeDocument"
      ],
      "Resource": "arn:aws:ssm:{{region}}:{{account}}:document/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:GetParameter",
        "ssm:GetParameters"
      ],
      "Resource": "arn:aws:ssm:{{region}}:{{account}}:parameter/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:ListInstanceAssociations"
      ],
      "Resource": [
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:PutComplianceItems"
      ],
      "Resource": [
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:UpdateAssociationStatus"
      ],
      "Resource": [
        "arn:aws:ssm:{{region}}:{{account}}:document/*",
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:UpdateInstanceAssociationStatus"
      ],
      "Resource": [
        "arn:aws:ssm:{{region}}:{{account}}:association/*",
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:UpdateInstanceInformation"
      ],
      "Resource": [
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:GetDeployablePatchSnapshotForInstance",
        "ssm:GetManifest",
        "ssm:ListAssociations",
        "ssm:PutInventory",
        "ssm:PutConfigurePackageResult"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssmmessages:CreateControlChannel",
        "ssmmessages:CreateDataChannel",
        "ssmmessages:OpenControlChannel",
        "ssmmessages:OpenDataChannel"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2messages:AcknowledgeMessage",
        "ec2messages:DeleteMessage",
        "ec2messages:FailMessage",
        "ec2messages:GetEndpoint"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2messages:GetMessages",
        "ec2messages:SendReply"
      ],
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "ssm:SourceInstanceARN": "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
        }
      }
    }
  ]
}
```

### 4. Função do IAM para o complemento do driver EBS CSI
<a name="role-ebs-csi"></a>

A função do IAM para o driver CSI do EBS é necessária porque o driver CSI do EBS provisiona volumes persistentes para cargas de trabalho do Spaces. Embora a [Amazon EBSCSIDriver Policy AWS](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEBSCSIDriverPolicy.html) gerenciada forneça permissões básicas, os SageMaker HyperPod clusters exigem [recursos adicionais](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-ebs.html#sagemaker-hyperpod-eks-ebs-setup), como criar restaurações rápidas de instantâneos, marcar volumes pertencentes ao cluster e volumes para nós gerenciados. attaching/detaching HyperPod Essas permissões também incluem permissões SageMaker específicas APIs , como`sagemaker:AttachClusterNodeVolume`. Se o driver EBS CSI não estiver instalado, essa função agora será criada automaticamente pelo SageMaker console durante a instalação do complemento Spaces, **sem exigir nenhuma** ação do cliente.

### 5. Função do IAM para complemento de DNS externo
<a name="role-external-nds"></a>

O complemento DNS externo gerencia registros DNS para recursos de Serviços e Entrada no cluster. HyperPod Ele garante que os endpoints do Space e os componentes do cluster possam receber nomes DNS automaticamente nas zonas hospedadas do Route 53 do cliente. Atualmente, os clientes geralmente instalam o DNS externo manualmente por meio de uma opção de 1 clique no console EKS. Como parte da melhoria da experiência do SageMaker Spaces, essa função agora será criada automaticamente pelo SageMaker console durante a instalação do complemento Spaces, **sem exigir nenhuma ação do cliente**.

## Configuração de permissão para o AWS kit de ferramentas para acessar espaços SageMaker
<a name="permission-for-toolkitl"></a>

Para permitir que o painel lateral do explorador de recursos do AWS VS Code Toolkit descubra e se conecte ao SageMaker Spaces, as seguintes permissões do IAM são necessárias. Essas permissões permitem que o Toolkit liste SageMaker HyperPod clusters disponíveis, recupere detalhes do cluster e obtenha um token de conexão para o cluster Amazon EKS associado.

**Política de IAM necessária**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SageMakerListClusters",
            "Effect": "Allow",
            "Action": "sagemaker:ListClusters",
            "Resource": "*"
        },
        {
            "Sid": "SageMakerDescribeCluster",
            "Effect": "Allow",
            "Action": "sagemaker:DescribeCluster",
            "Resource": "arn:aws:sagemaker:{{region}}:{{account}}:cluster/cluster-name"
        },
        {
            "Sid": "EksDescribeCluster",
            "Effect": "Allow",
            "Action": "eks:DescribeCluster",
            "Resource": "arn:aws:eks:{{region}}:{{account}}:cluster/cluster-name"
        },
        {
            "Sid": "EksGetToken",
            "Effect": "Allow",
            "Action": "eks:GetToken",
            "Resource": "*"
        }
    ]
}
```

**Recomendações de escopo**
+ Substitua cluster-name pelo (s) SageMaker HyperPod cluster (s) específico (s) que seus usuários precisam acessar.
+ A GetToken ação eks: atualmente não suporta restrições em nível de recurso e deve usar Resource: “\*”. Essa é uma limitação AWS do serviço. A autenticação do lado do cliente é realizada por meio de [entradas de acesso do EKS](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html).