本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
新增使用者並設定服務帳戶
精細存取控制 - 我們的建議
使用者會根據其 Kubernetes 使用者名稱進行區分。使用者的 Kubernetes 使用者名稱定義在其存取項目中。為了確保兩個人類使用者具有不同的使用者名稱,有兩個選項:
-
建議 - 多個人類使用者可以使用相同的角色,只要每個角色都有自己的不同工作階段名稱,並在工作階段之間保留。根據預設,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/
-
-
如果 2 個資料科學家使用不同的存取項目 (不同的 IAM 角色或使用者),則一律會計入不同的使用者。
建立存取項目
資料科學家角色所需的 IAM 政策:
-
eks:DescribeCluster
必要的存取項目政策
-
AmazonSagemakerHyperpodSpacePolicy- 範圍限定於命名空間 DS 應該在 中建立空格 -
AmazonSagemakerHyperpodSpaceTemplatePolicy- 範圍為「jupyter-k8s-shared」命名空間
私有和公有空間
我們支援 2 種共用模式:「公有」和「OwnerOnly」。「AccessType」和「OwnershipType」欄位都使用這兩個值。
-
AccessType:具有 命名空間許可的任何人都可以存取公有空間,而 OwnerOnly 只能由空間建立者和管理員使用者存取。管理員使用者的定義條件如下:
-
OwnershipType:具有命名空間許可的任何人都可以修改/刪除公有空間,建立者或管理員可以修改/刪除 OwnerOnly。
管理員使用者的定義如下:
-
Kubernetes
system:masters群組的一部分 -
在 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