AWS CDKを介してAmazon SageMakerロールマネージャーを使用して、カスタム権限を数分で定義します
Define custom permissions in minutes using Amazon SageMaker Role Manager via AWS CDK.
機械学習(ML)の管理者は、MLワークロードのセキュリティと完全性を維持する上で重要な役割を果たしています。彼らの主な焦点は、ユーザーが最高のセキュリティで操作し、最小限の特権の原則に従うことを確認することです。ただし、異なるユーザーペルソナの多様なニーズに対応し、適切な許可ポリシーを作成することは、アジリティを妨げる場合があります。この課題に対処するため、AWSは2022年12月にAmazon SageMaker Role Managerを導入しました。SageMaker Role Managerは、迅速にペルソナベースの役割を開発し、特定の要件に合わせて簡単にカスタマイズできる強力なツールです。
SageMaker Role Managerにより、管理者は異なるユーザーグループに合わせて、ペルソナベースの役割を効率的に定義できます。このアプローチにより、個人がタスクに必要なリソースとアクションにのみアクセスできるようにし、不正行為や侵害のリスクを減らします。 SageMaker Role Managerは、細かい調整も可能です。 ML管理者は、各ペルソナに関連する許可を変更することで、役割を特定の要件に合わせて調整できます。この柔軟性により、アクセス許可が個々のユーザーのタスクと責任に正確に合致し、ユニークなユースケースに対応しながら堅牢なセキュリティフレームワークが提供されます。
現在、SageMaker Role Managerは、すべての商用リージョンのAmazon SageMakerコンソールで利用可能です。今日、SageMaker Role Managerを使用してカスタマイズされたアクセス許可を数分で定義できるようになりました。これにより、ML管理者はプログラムでタスクを自動化できるようになりました。 AWS CDKの強力な機能により、ML管理者はワークフローを合理化し、手動作業を削減し、MLインフラストラクチャのアクセス許可を管理するための一貫性を確保できます。
ソリューションの概要
SageMaker Role Manager CDKのリリースに伴い、2つの新しいインフラストラクチャのコード(IaC)の機能を導入します。
- MLペルソナ向けの細かい許可の作成
- Amazon SageMaker Pipelines、AWS Lambda、およびその他のAWSサービスを介した自動化されたジョブの細かい許可の作成
データサイエンティスト、MLエンジニア、またはデータエンジニアなどのMLペルソナ向けに、細かいAWS Identity and Access Management(IAM)ロールを作成できます。 SageMaker Role Managerは、予め定義されたペルソナとMLアクティビティを組み合わせて、許可の生成プロセスを合理化し、ML実践者が最小限の特権許可で責任を果たすことを可能にします。 MLリソースへの安全なアクセスのために、SageMaker Role Managerは、Amazon Virtual Private Cloud(Amazon VPC)リソースとAWS Key Management Service(AWS KMS)暗号化キーのネットワーキングおよび暗号化許可を指定できます。さらに、独自のカスタマー管理ポリシーを添付して、許可をカスタマイズすることもできます。
SageMaker Role Manager CDKを使用すると、数分でSageMakerユーザー向けにカスタム許可を定義できます。さまざまなペルソナとMLアクティビティ用の事前定義済みのポリシーテンプレートのセットが付属しています。ペルソナは、データサイエンティストやMLOpsエンジニアなど、SageMakerでMLアクティビティを実行するために必要な許可を持つ異なるタイプのユーザーを表します。 MLアクティビティは、Amazon SageMaker Studioアプリケーションを実行したり、実験、モデル、またはパイプラインを管理したりするための一連の許可です。ペルソナタイプとMLアクティビティセットを選択した後、SageMaker Role Manager CDKは、必要なIAMロールとポリシーを自動的に作成し、SageMakerユーザーに割り当てることができます。同様に、SageMaker Pipelinesを実行するための細かい許可を持つIAMロールを作成することもできます。
前提条件
SageMaker Role Manager CDKを使用するには、次の前提条件を満たす必要があります。
- ML管理者がペルソナを作成および管理し、それらのユーザーのIAM許可を設定するためのロールを設定します。サンプル管理者ポリシーについては、「Amazon SageMaker Role Managerで数分でカスタマイズされた許可を定義する」ブログ投稿の前提条件セクションを参照してください。
- ジョブとエンドポイントに渡すためのコンピュート専用のペルソナロールを作成します(存在しない場合)。そのロールの設定手順については、「ロールマネージャーの使用」を参照してください。
- AWS CDK開発環境を設定します。手順については、「AWS CDKの入門」を参照してください。
SageMaker Role Manager CDKのインストールと実行
SageMaker Role Manager CDKを設定するには、次の手順を実行してください。
-
AWS CDKアプリを作成し、名前を付けます。たとえば、「RoleManager」とします。
-
「RoleManager」フォルダに移動し、次のコマンドを実行して、空のTypeScript AWS CDKプロジェクトを作成します。
cdk init app --language typescript
-
package.json
を開き、次のコードに示すように、強調表示されたパッケージを追加します。"dependencies": { "aws-cdk-lib": "2.85.0", "@cdklabs/cdk-aws-sagemaker-role-manager": "0.0.15", "constructs": "^10.0.0", "source-map-support": "^0.5.21" }
-
次のコマンドを実行して、新しい
cdk-aws-sagemaker-role-manager
パッケージをインストールします。npm install
-
lib
フォルダに移動し、role_manager_stack.ts
を次のコードで置き換えます。import * as cdk from 'aws-cdk-lib'; import { Construct } from 'constructs'; import * as iam from 'aws-cdk-lib/aws-iam'; import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'; export class RoleManagerStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); const activity = Activity.manageJobs(this, 'id1', { rolesToPass: [iam.Role.fromRoleName(this, 'passRoleId', 'passRoleName')], }); activity.createRole(this, 'newRoleId', 'newRoleName', newRoleDescription'); } }
-
必要に応じて、
passRoleId
、passRoleName
、newRoleId
、newRoleName
、およびnewRoleDescription
を置き換えます。 -
AWS CDKアプリのホームフォルダに戻り、生成されたAWS CloudFormationテンプレートを確認するには、次のコマンドを実行します。
cdk synth</
以下のスクリーンショットに示すようなAWS CDKデプロイメントの出力が表示されます。
他のSageMaker Role Manager CDKの例は、以下のGitHubリポジトリで入手できます。
MLパーソナとアクティビティCDKリファレンス
管理者は、MLアクティビティクラスのMLアクティビティ静的関数の1つを使用して、MLアクティビティを定義できます。最新バージョンのリストについては、MLアクティビティリファレンスを参照してください。
MLパーソナクラスは、以下のメソッドをサポートしています。
- customizeVPC(subnets、securityGroups) - パーソナのVPCをカスタマイズできるすべてのアクティビティのVPCをカスタマイズします。
- customizeKMS(dataKeys、volumeKeys) - パーソナのKMSキーをカスタマイズできるすべてのアクティビティのKMSキーをカスタマイズします。
- createRole(scope、id、roleNameSuffix、roleDescription) - IDがスコープでUIに似たパーソナのアクティビティの権限を持つ役割を作成し、
SageMaker-${roleNameSuffix}
という名前で、オプションで渡された役割の説明を持つものです。 - grantPermissionsTo(identity) - アイデンティティにパーソナのアクティビティの権限を付与します。渡されたアイデンティティは、ロールまたはロールに関連付けられたAWSリソース(たとえば、Lambda関数で、Lambda関数がアクセスできるリソースを説明するLambda関数の役割を持つ)であることができます。
- grantPermissionsTo() - 渡されたアイデンティティの役割を、MLアクティビティで指定された権限を持つように更新します。
MLアクティビティクラスは、MLパーソナと同じセットの関数をサポートしています。ただし、このインターフェイスを使用してIAMロールを作成する場合、MLアクティビティは単一のアクティビティに制限されるという違いがあります。
結論
SageMaker Role Managerを使用すると、パーソナ、プリビルドされたMLアクティビティ、およびカスタムポリシに基づいたカスタマイズされた役割を作成でき、必要な時間を大幅に短縮できます。今回のAWS CDKサポートにより、ロールの定義がさらにインフラストラクチャコードをサポートするように拡張され、MLプラクティショナーはSageMakerでプログラム的に作業し、効率を高め、ワークフローにシームレスに統合することができます。
この新機能がお役に立ちましたら、ぜひご意見をお聞かせください。SageMaker Role Managerの新しいAWS CDKサポートを試して、ご意見をお寄せください。
SageMaker Role Managerの使用方法について詳しくは、SageMaker Role Manager開発者ガイドを参照してください。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles