ユーザーの追加とサービスアカウントの設定 - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ユーザーの追加とサービスアカウントの設定

きめ細かなアクセスコントロール - 推奨事項

ユーザーは Kubernetes ユーザー名に基づいて区別されます。ユーザーの Kubernetes ユーザー名は、アクセスエントリで定義されます。2 人のユーザーが個別のユーザー名を持つようにするには、次の 2 つのオプションがあります。

  1. 推奨 - 複数のヒューマンユーザーは、セッション間で保持される独自のセッション名を持っている限り、同じロールを使用できます。デフォルトでは、IAM ロールの Kubernetes ユーザー名は の形式ですarn:aws:sts::{ACCOUNT_ID}:assumed-role/{ROLE_NAME}/{SESSION_NAME}。このデフォルトでは、ユーザーはすでにセッション名で区別されます。管理者には、ユーザーごとに一意のセッション名を適用する方法がいくつかあります。

    • SSO ログイン - SSO ログインを使用するユーザーは、デフォルトでAWSユーザー名に関連付けられたセッション名を持ちます。

    • 中央認証情報供給サービス - エンタープライズのお客様は、ユーザーが ID で認証情報を取得するために呼び出すことができる内部認証情報供給サービスがある場合があります。

    • ロールベースの適用 - IAM ユーザーは、 で IAM ロールを引き受けるときに、 をロールセッション名aws:usernameとして設定する必要がありますAWS アカウント。これを行う方法については、https://aws.amazon.com/blogs/security/easily-control-naming-individual-iam-role-sessions/ を参照してください。

  2. 2 人のデータサイエンティストが異なるアクセスエントリ (異なる IAM ロールまたはユーザー) を使用している場合、それらは常に異なるユーザーとしてカウントされます。

アクセスエントリの作成

データサイエンティストロールに必要な IAM ポリシー:

  • eks:DescribeCluster

必要なアクセスエントリポリシー

  • AmazonSagemakerHyperpodSpacePolicy - DS が にスペースを作成する名前空間に限定

  • AmazonSagemakerHyperpodSpaceTemplatePolicy - 「jupyter-k8s-shared」名前空間に限定

プライベートスペースとパブリックスペース

「Public」とOwnerOnly」の 2 種類の共有パターンをサポートしています。AccessType」フィールドとOwnershipType」フィールドの両方がこれらの 2 つの値を使用します。

  • AccessType: パブリックスペースには名前空間内のアクセス許可を持つユーザーがアクセスできますが、OwnerOnly にはスペース作成者と管理者ユーザーのみがアクセスできます。管理者ユーザーは、次の基準で定義されます。

  • OwnershipType: パブリックスペースは、名前空間内のアクセス許可を持つすべてのユーザーが変更/削除できます。OwnerOnly は、作成者または管理者によって変更/削除できます。

管理者ユーザーの定義は以下のとおりです。

  1. Kubernetes system:masters グループの一部

  2. helm チャートの CLUSTER_ADMIN_GROUP 環境変数で定義された Kubernetes グループの一部。

ユーザーのグループは、EKS アクセスエントリを使用して設定できます。オブジェクトで仕様を設定することで、スペースを「Public」または「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