特徴量グループカタログ、DefaultFeatureGroupCatalog
には、リソース所有者アカウントが所有するすべての特徴量グループエンティティが含まれています。カタログはリソース所有者アカウントによって共有され、検出可能性のアクセス許可を単一または複数のリソースコンシューマーアカウントに付与できます。これは、AWS Resource Access Manager (AWS RAM) でリソース共有を作成することによって実現できます。特徴量グループは Amazon SageMaker Feature Store の主要リソースであり、特徴量ストアによって管理される特徴量定義とレコードで構成されます。特徴量グループの詳細については、「Feature Store の概念」を参照してください。
検出可能性とは、リソースコンシューマーアカウントが検出可能なリソースを検索できることを意味します。検出可能なリソースは、自身のアカウントに配置されているかのように表示されます (タグを除く)。特徴量グループカタログを検出可能にすると、リソースコンシューマーアカウントにはデフォルトではアクセス許可 (読み取り専用、読み取り/書き込み、または管理者) が付与されません。アクセス許可はアカウントレベルではなくリソースレベルで付与されます。アクセス許可の付与については、「クロスアカウントアクセスを有効にする」を参照してください。
クロスアカウント検出可能性を有効にするには、AWS RAM 開発者ガイドの「AWS RAM Create a resources share」の手順を使用する際に、SageMaker リソースカタログと特徴量グループカタログを指定する必要があります。以下では、AWS RAM コンソールの使用手順を詳述します。
-
リソース共有の詳細の指定:
-
リソースタイプ: [SageMaker リソースカタログ] を選択します。
-
ARN: 次の形式で特徴量グループカタログ ARN を選択します。
arn:aws:sagemaker:
us-east-1
:111122223333
:sagemaker-catalog/DefaultFeatureGroupCatalog
はリソースのリージョンで、us-east-1
はリソース所有者のアカウント ID です。111122223333
-
リソース ID:
DefaultFeatureGroupCatalog
を選択します。
-
-
マネージドアクセス許可の関連付け:
-
マネージドアクセス許可:
AWSRAMPermissionSageMakerCatalogResourceSearch
を選択します。
-
-
プリンシパルへのアクセス許可の付与:
-
プリンシパルタイプ ([AWS アカウント]、[組織]、[組織単位]) を選択し、適切な ID を入力します。
組織の場合は、AWS Organizations を利用することもできます。Organizations を使用すると、リソースを個別の AWS アカウント、組織内のすべてのアカウント、または Organization Unit (OU) と共有することができます。これにより、各アカウントにアクセス許可を適用する必要なく、アクセス許可を簡単に適用できます。AWS 内でのリソースの共有とアクセス許可の付与の詳細については、「AWS Resource Access Manager 開発者ガイド」の「Enable resource sharing within AWS Organizations」を参照してください。
-
-
確認と作成:
-
確認したら、[リソース共有を作成] を選択します。
-
リソース共有とプリンシパル、またはリソースコンシューマーアカウントの関連付けが完了するまでに数分かかることがあります。リソース共有とプリンシパルの関連付けが設定されると、指定されたリソースコンシューマーアカウントは、リソース共有への参加の招待を受け取ります。リソースコンシューマーアカウントは、AWS RAM コンソールで [Shared with me: Resource shares]
-
AWS Organizations の組織に属していて、組織内での共有が有効になっている場合。この場合、組織のプリンシパルは招待なしで共有リソースに自動的にアクセスできます。
-
リソースを所有する AWS アカウントと共有する場合、そのアカウントのプリンシパルは、招待なしで自動的に共有リソースにアクセスできます。
リソース共有の承認と使用の詳細については、「検出可能なリソースの検索」を参照してください。
AWS SDK for Python (Boto3) を使用して特徴量グループカタログを共有する
AWS SDK for Python (Boto3)for AWS RAM API を使用してリソース共有を作成できます。次のコードは、us-east-1
リージョン内のリソース所有者アカウント ID
の例です。リソース所有者は、111122223333
という名前のリソース共有を作成しています。これらは、特徴量グループカタログをリソースコンシューマーアカウント ID test-cross-account-catalog
と共有しています。Python SDK for AWS RAM API を使用するには、444455556666
AWSRAMPermissionSageMakerCatalogResourceSearch
ポリシーを実行ロールにアタッチします。詳細については、「AWS RAM APIs
#Call list resource catalogs as a prerequisite for RAM share sagemaker_client.list_resource_catalogs() # Share DefaultFeatureGroupCatalog with other account ram_client = boto3.client("ram") response = ram_client.create_resource_share( name='
test-cross-account-catalog
', # Change to your custom resource share name resourceArns=[ 'arn:aws:sagemaker:us-east-1
:111122223333
:sagemaker-catalog/' + 'DefaultFeatureGroupCatalog', # Change111122223333
to the resource owner account ID ], principals=[ '444455556666
', # Change444455556666
to the resource consumer account ID ], permissionArns = ["arn:aws:ram::aws:permission/AWSRAMPermissionSageMakerCatalogResourceSearch"] # AWSRAMPermissionSageMakerCatalogResourceSearch is the only policy allowed for SageMaker Catalog )
プリンシパルはセキュリティシステムのアクターです。リソースベースのポリシーでは、許可されるプリンシパルは IAM ユーザー、IAM ロール、ルートアカウント、または別の AWS サービスです。