

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 新增使用者並設定服務帳戶
<a name="add-user"></a>

## 精細存取控制 - 我們的建議
<a name="add-user-access-control"></a>

使用者會根據其 Kubernetes 使用者名稱進行區分。使用者的 Kubernetes 使用者名稱定義在其存取項目中。為了確保兩個人類使用者具有不同的使用者名稱，有兩個選項：

1. 建議 - 多個人類使用者可以使用相同的角色，只要每個角色都有自己的不同工作階段名稱，並在工作階段之間保留。根據預設，IAM 角色的 Kubernetes 使用者名稱格式為 `arn:aws:sts::{ACCOUNT_ID}:assumed-role/{ROLE_NAME}/{SESSION_NAME}`。使用此預設值時，使用者將會依工作階段名稱區分。管理員有幾種方法可以強制每個使用者使用唯一的工作階段名稱。
   + SSO 登入 - 使用 SSO 登入的使用者預設會有一個與其 AWS 使用者名稱繫結的工作階段名稱
   + 中央憑證販賣服務 - 對於企業客戶，他們可能有一些內部憑證販賣服務，使用者可以呼叫該服務來取得具有其身分的憑證。
   + 角色型強制執行 - 要求 IAM 使用者在您的 中擔任 IAM 角色時，將其設定為`aws:username`其角色工作階段名稱 AWS 帳戶。有關如何執行此操作的文件如下：https：//[https://aws.amazon.com/blogs/security/easily-control-naming-individual-iam-role-sessions/](https://aws.amazon.com/blogs/security/easily-control-naming-individual-iam-role-sessions/)

1. 如果 2 個資料科學家使用不同的存取項目 （不同的 IAM 角色或使用者），則一律會將其計為不同的使用者。

**建立存取項目**

資料科學家角色所需的 IAM 政策：
+ `eks:DescribeCluster`

必要的存取項目政策
+ `AmazonSagemakerHyperpodSpacePolicy` - 範圍限定於命名空間 DS 應該在 中建立空格
+ `AmazonSagemakerHyperpodSpaceTemplatePolicy` - 範圍為「jupyter-k8s-shared」命名空間

## 私有和公有空間
<a name="add-user-spaces"></a>

我們支援 2 種類型的共用模式：「公有」和「OwnerOnly」。「AccessType」和「OwnershipType」欄位都使用這兩個值。
+ AccessType：具有 命名空間許可的任何人都可以存取公有空間，而 OwnerOnly 只能由空間建立者和管理員使用者存取。管理員使用者的定義條件如下：
+ OwnershipType：具有命名空間許可的任何人都可以修改/刪除公有空間，建立者或管理員可以修改/刪除 OwnerOnly。

管理員使用者的定義如下：

1. Kubernetes `system:masters` 群組的一部分

1. 在 Helm Chart 的 CLUSTER\_ADMIN\_GROUP 環境變數中定義的 Kubernetes 群組的一部分。

您可以使用 EKS 存取項目來設定使用者群組。透過在 物件中設定規格，可將空間定義為「公有」或「OwnerOnly」：

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  labels:
    app.kubernetes.io/name: jupyter-k8s
  name: example-workspace
spec:
  displayName: "Example Workspace"
  image: "public.ecr.aws/sagemaker/sagemaker-distribution:3.4.2-cpu"
  desiredStatus: "Running"
  ownershipType: "Public"/"OwnerOnly"
  accessType: "Public"/"OwnerOnly"
  # more fields here
```