AI用Platform for AI (PAI) のAIコンピューティングリソースにきめ細かい権限制御を実装する場合は、カスタムポリシーを作成して、リソースを作成、更新、削除、またはスケールする権限をResource Access Management (RAM) ユーザーに付与できます。
背景情報
RAM権限は、クラウドネイティブリソースとリソースクォータの管理に使用されます。 クラウドネイティブリソースには、一般的なコンピューティングリソースとLingjunリソースが含まれます。
リソースプール
リソースプールには、専用リソースグループ (ResourceGroup) で購入したAI開発用のコンピューティングリソースが含まれます。
詳細については、「概要」をご参照ください。
リソースクォータ
リソースクォータは、リソースプールからのAIコンピューティングリソースのサブコレクションです。 リソースクォータをワークスペースに関連付けると、ワークスペースメンバーは対応するリソースを使用してAI開発を実行し、オンラインサービスをデプロイできます。 詳細については、「概要」をご参照ください。
次の図に示すように、ツリー構造に従うリソースクォータを作成できます。 リソースプールのリソースを使用して作成されるリソースクォータは、ルートリソースクォータと呼ばれます。 各ルートリソースクォータは、複数の子リソースクォータに分割できます。 各子リソースのクォータをさらに分割することもできます。
手順
RAM ユーザーを作成します。 詳細については、「RAM ユーザーの作成」をご参照ください。
カスタムポリシーを作成します。 カスタムポリシーの作成方法については、「カスタムポリシーの作成」トピックの「JSONタブでカスタムポリシーを作成する」をご参照ください。
さまざまなカスタムポリシーによって付与される権限の詳細については、このトピックの「例」を参照してください。
カスタムポリシーをRAMユーザーにアタッチします。 詳細については、「RAM ユーザーへの権限の付与」をご参照ください。
例
リソースプールの管理権限
リソースプールを管理する権限を持つRAMユーザーは、リソースプール内の専用リソースグループを表示、作成、更新、および削除できます。
サンプルポリシー設定:
RAMユーザーにリソースプールを管理する権限を付与するには、そのユーザーにVirtual Private Cloud (VPC) 権限を付与する必要があります。 これは、ユーザーがPAIコンソールの [リソースプール] ページで専用リソースグループを作成するときにVPC設定が必要になるためです。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"pai:*ResourceGroup*"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups"
],
"Resource": "*"
}
]
}
ルートリソースクォータを作成、スケーリング、および削除する権限
ルートリソースクォータには、リソースプール内の1つ以上の専用リソースグループからのリソースが含まれます。 RAMユーザーにルートリソースクォータを作成、更新、スケーリング、または削除する権限を付与するには、リソースプールとクォータを管理する権限をユーザーに付与する必要があります。
次の例では、リソースプール内の3つの専用リソースグループresourcegroup1
、resourcegroup2
、およびresourcegroup3
の取得、リスト、および更新権限を定義します。 これは、許可されたRAMユーザーが3つの専用リソースグループのみを使用してルートリソースクォータを作成できることを示しています。
"acs:pai:*:*:quota/*"
は、許可されたRAMユーザーが、resourcegroup1
、resourcegroup2
、およびresourcegroup3
のリソースを使用して作成されたすべてのリソースクォータを管理できることを示します。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"pai:GetResourceGroup",
"pai:ListResourceGroups",
"pai:UpdateResourceGroup"
],
"Resource": [
"acs:pai:*:*:resourcegroup/resourcegroup1",
"acs:pai:*:*:resourcegroup/resourcegroup2",
"acs:pai:*:*:resourcegroup/resourcegroup3"
]
},
{
"Effect": "Allow",
"Action": [
"pai:CreateQuota",
"pai:UpdateQuota",
"pai:ScaleQuota",
"pai:DeleteQuota",
"pai:GetQuota",
"pai:ListQuotas"
],
"Resource": [
"acs:pai:*:*:quota/*"
]
}
]
}
ルートリソースクォータの管理権限
ルートリソースクォータを管理するための権限には、リソースプールを管理するための権限は必要ありません。 たとえば、quota1を管理する権限を持つRAMユーザーは、次の操作を実行できます。
quota1を表示します。
クォータのタグや説明など、quota1のメタデータを更新します。
クォータの作成、更新、スケール、削除など、quotasの子リソースクォータの管理。
次のquota1
のサンプルポリシー設定には、2つのステートメントが含まれています。 最初のステートメントでは、quota1
の子リソースのクォータを管理する権限を定義し、2番目のステートメントでは、quota1
を管理する権限を定義します。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"pai:CreateQuota",
"pai:UpdateQuota",
"pai:ScaleQuota",
"pai:DeleteQuota",
"pai:GetQuota",
"pai:ListQuotas"
],
"Resource": [
"acs:pai:*:*:quota/quota1/*"
]
},
{
"Effect": "Allow",
"Action": [
"pai:UpdateQuota",
"pai:GetQuota",
"pai:ListQuotas"
],
"Resource": [
"acs:pai:*:*:quota/quota1"
]
}
]
}
子リソースのクォータを管理する権限
たとえば、quota1.2を管理する権限を持つRAMユーザーは、次の操作を実行できます。
ビューquota1.2。
クォータのタグや説明など、quota1.2のメタデータを更新します。
quota1.2の子リソースのクォータの管理 (クォータの作成、更新、スケール、削除など) 。
quota1.2
の次のサンプルポリシー設定には、2つのステートメントがあります。 最初のステートメントは、quota1.2
の子リソースのクォータを管理する権限を定義し、2番目のステートメントは、quota1.2
を管理する権限を定義します。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"pai:CreateQuota",
"pai:UpdateQuota",
"pai:ScaleQuota",
"pai:DeleteQuota",
"pai:GetQuota",
"pai:ListQuotas"
],
"Resource": [
"acs:pai:*:*:quota/*/quota1.2/*"
]
},
{
"Effect": "Allow",
"Action": [
"pai:UpdateQuota",
"pai:GetQuota",
"pai:ListQuotas"
],
"Resource": [
"acs:pai:*:*:quota/*/quota1.2"
]
}
]
}
VPC権限
中国 (Ulanqab) リージョンでLingjunリソースを購入した場合、PAIコンソールでルートおよび子リソースクォータを作成するときにVPCを設定できます。 この場合、クォータに関連するポリシーにVPC権限も追加する必要があります。 サンプルポリシー設定:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups"
],
"Resource": "*"
}
]
}