Resource Access Management (RAM) は Alibaba Cloud によって提供される、ユーザーのアイデンティティとリソースの権限を管理するためのサービスです。RAM を使用すると、Alibaba Cloud アカウント (root ユーザー) のキーを他のユーザーと共有することを回避でき、ユーザーに必要最小限の権限を付与できます。RAM ではポリシーを使用して権限付与を定義します。このトピックでは、RAM ポリシーの一般的な構造と、Alibaba Cloud Model Studioのポリシーステートメントを構成する要素である「アクション (Action)」「リソース (Resource)」および「条件 (Condition) 」について説明します。Alibaba Cloud Model Studioは、RAM コード (RamCode) が sfm で、OPERATIONでの権限付与がサポートされています。
一般的なポリシー構造
RAM ポリシーは、一般的に以下のような JSON 構造で構成されます。
{
"Version": "1",
"Statement": [
{
"Effect": "<Effect>",
"Action": "<Action>",
"Resource": "<Resource>",
"Condition": {
"<Condition_operator>": {
"<Condition_key>": [
"<Condition_value>"
]
}
}
}
]
}
ポリシーのフィールドに関する説明:
-
Version:ポリシーのバージョン番号。現在のポリシーバージョンは 1 です。
-
Statement:
-
Effect:「許可するか、拒否するか」という、最終的な結果を定義します。有効な値:Allow (許可) または Deny (拒否)。
-
Action:「何をすることができるか、できないか」を定義する、リソースへの具体的な操作を指します。
-
Resource:「何に対して操作を行うか」を定義する、操作の具体的な対象です。対象となるリソースは、ARN (Alibaba Cloud Resource Name) を使用して指定できます。
-
Condition:「どのような状況下でポリシーが適用されるか」という、権限が有効になるための付加的な制約条件を定義します。このフィールドは任意です。
- Condition operator:条件の演算子。条件キーの値とリクエスト値をどのように比較するかを定義する「比較方法」です。条件演算子は、条件のタイプによって異なります。
- Condition_key:条件のキー。ポリシーの条件が満たされているかを判断するために、リクエストから参照・チェックされる特定の属性を指します。
- Condition_value:条件の値。条件キーから取得されたリクエスト値と比較するための、具体的な「基準値」です。
-
アクション (Action)
下表に、Alibaba Cloud Model Studio で定義されたアクションを示します。以下で各列名について説明します。
-
アクション:特定のリソースに対して実行可能な操作。ポリシー構文では
Action要素として指定します。 -
API:アクションを具体的に実行するための API。
-
アクセスレベル:各 API に対して事前定義されているアクセスの種類。有効な値:create、list、get、update、delete。
-
リソースタイプ:アクションが作用するリソースの種類。リソースレベルでの権限をサポートするかどうかを示すことができます。ポリシーの有効性を確保するため、アクションの対象として適切なリソースを指定する必要があります。
- リソースレベルの権限を持つ API の場合、必要なリソースタイプはアスタリスク (*) でマークされます。ポリシーの
Resource要素で対応する ARN を指定してください。 - リソースレベルの権限を持たない API の場合、「すべてのリソース」と表示され、ポリシーの
Resource要素でアスタリスク (*) でマークされます。
- リソースレベルの権限を持つ API の場合、必要なリソースタイプはアスタリスク (*) でマークされます。ポリシーの
-
条件キー:サービスによって定義された条件のキー。このキーにより、きめ細やかなアクセス制御が可能になります。この制御は、アクション単体に適用することも、特定のリソースに対するアクションに適用することもできます。Alibaba Cloud は、サービス固有の条件キーに加えて、すべての RAM 統合サービスに適用可能な一連の共通条件キーを提供しています。詳細については、「共通条件キー」をご参照ください。
-
依存アクション:ある特定のアクションを実行するために、前提として実行が必要となる他のアクション。依存アクションの権限も RAM ユーザーまたは RAM ロールに付与する必要があります。
アクション | API | アクセスレベル | リソースタイプ | 条件キー | 依存アクション |
|---|---|---|---|---|---|
| sfm:DeleteMemory | DeleteMemory | delete | *All Resource
| なし | なし |
| sfm:ListCategory | ListCategory | list | *All Resource
| なし | なし |
| sfm:GetIndexJobStatus | GetIndexJobStatus | get | *All Resource
| なし | なし |
| sfm:ListMemories | ListMemories | list | *All Resource
| なし | なし |
| sfm:BatchUpdateFileTag | BatchUpdateFileTag | update | *All Resource
| なし | なし |
| sfm:AddCategory | AddCategory | create | *All Resource
| なし | なし |
| sfm:DeleteMemoryNode | DeleteMemoryNode | delete | *All Resource
| なし | なし |
| sfm:SubmitIndexJob | SubmitIndexJob | create | *All Resource
| なし | なし |
| sfm:GetMemoryNode | GetMemoryNode | get | *All Resource
| なし | なし |
| sfm:ListIndexFileDetails | ListIndexFileDetails | list | *All Resource
| なし | なし |
| sfm:UpdateConnector | UpdateConnector | update | *All Resource
| なし | なし |
| sfm:AddConnector | AddConnector | create | *All Resource
| なし | なし |
| sfm:GetAvailableParserTypes | GetAvailableParserTypes | get | *All Resource
| なし | なし |
| sfm:DeleteFile | DeleteFile | delete | *All Resource
| なし | なし |
| sfm:AddFilesFromAuthorizedOss | AddFilesFromAuthorizedOss | create | *All Resource
| なし | なし |
| sfm:UpdatePromptTemplate | UpdatePromptTemplate | update | *All Resource
| なし | なし |
| sfm:CreateMemory | CreateMemory | create | *All Resource
| なし | なし |
| sfm:ApplyFileUploadLease | ApplyFileUploadLease | none | *All Resource
| なし | なし |
| sfm:CreateMemoryNode | CreateMemoryNode | create | *All Resource
| なし | なし |
| sfm:ListFile | ListFile | list | *All Resource
| なし | なし |
| sfm:UpdateChunk | UpdateChunk | update | *All Resource
| なし | なし |
| sfm:GetConnector | GetConnector | get | *All Resource
| なし | なし |
| sfm:GetParseSettings | GetParseSettings | get | *All Resource
| なし | なし |
| sfm:DeleteFiles | DeleteFiles | delete | *All Resource
| なし | なし |
| sfm:ChangeParseSetting | ChangeParseSetting | update | *All Resource
| なし | なし |
| sfm:DeleteCategory | DeleteCategory | delete | *All Resource
| なし | なし |
| sfm:AddFile | AddFile | create | *All Resource
| なし | なし |
| sfm:ApplyTempStorageLease | ApplyTempStorageLease | none | *All Resource
| なし | なし |
| sfm:GetMemory | GetMemory | get | *All Resource
| なし | なし |
| sfm:DeleteConnector | DeleteConnector | delete | *All Resource
| なし | なし |
| sfm:DeletePromptTemplate | DeletePromptTemplate | delete | *All Resource
| なし | なし |
| sfm:UpdateMemory | UpdateMemory | update | *All Resource
| なし | なし |
| sfm:DeleteChunk | DeleteChunk | delete | *All Resource
| なし | なし |
| sfm:ListCategory | ListCategory | list | *All Resource
| なし | なし |
| sfm:GetIndexJobStatus | GetIndexJobStatus | get | *All Resource
| なし | なし |
| sfm:AddCategory | AddCategory | create | *All Resource
| なし | なし |
| sfm:GetParseSettings | GetParseSettings | get | *All Resource
| なし | なし |
| sfm:DeleteMemoryNode | DeleteMemoryNode | delete | *All Resource
| なし | なし |
| sfm:SubmitIndexJob | SubmitIndexJob | create | *All Resource
| なし | なし |
| sfm:ChangeParseSetting | ChangeParseSetting | update | *All Resource
| なし | なし |
| sfm:UpdateConnector | UpdateConnector | update | *All Resource
| なし | なし |
| sfm:ListIndexFileDetails | ListIndexFileDetails | list | *All Resource
| なし | なし |
| sfm:GetAvailableParserTypes | GetAvailableParserTypes | get | *All Resource
| なし | なし |
| sfm:AddFile | AddFile | create | *All Resource
| なし | なし |
| sfm:CreateMemory | CreateMemory | create | *All Resource
| なし | なし |
| sfm:DeleteConnector | DeleteConnector | delete | *All Resource
| なし | なし |
| sfm:ListFile | ListFile | list | *All Resource
| なし | なし |
| sfm:ApplyFileUploadLease | ApplyFileUploadLease | none | *All Resource
| なし | なし |
| sfm:DeletePromptTemplate | DeletePromptTemplate | delete | *All Resource
| なし | なし |
| sfm:DeleteChunk | DeleteChunk | delete | *All Resource
| なし | なし |
| sfm:DeleteCategory | DeleteCategory | delete | *All Resource
| なし | なし |
| sfm:AddConnector | AddConnector | create | *All Resource
| なし | なし |
| sfm:ListMemories | ListMemories | list | *All Resource
| なし | なし |
| sfm:BatchUpdateFileTag | BatchUpdateFileTag | update | *All Resource
| なし | なし |
| sfm:UpdatePromptTemplate | UpdatePromptTemplate | update | *All Resource
| なし | なし |
| sfm:GetMemoryNode | GetMemoryNode | get | *All Resource
| なし | なし |
| sfm:GetConnector | GetConnector | get | *All Resource
| なし | なし |
| sfm:GetMemory | GetMemory | get | *All Resource
| なし | なし |
| sfm:DeleteFile | DeleteFile | delete | *All Resource
| なし | なし |
| sfm:UpdateMemory | UpdateMemory | update | *All Resource
| なし | なし |
| sfm:AddFilesFromAuthorizedOss | AddFilesFromAuthorizedOss | create | *All Resource
| なし | なし |
| sfm:DeleteFiles | DeleteFiles | delete | *All Resource
| なし | なし |
| sfm:CreateMemoryNode | CreateMemoryNode | create | *All Resource
| なし | なし |
| sfm:ApplyTempStorageLease | ApplyTempStorageLease | none | *All Resource
| なし | なし |
| sfm:UpdateChunk | UpdateChunk | update | *All Resource
| なし | なし |
| sfm:DeleteMemory | DeleteMemory | delete | *All Resource
| なし | なし |
| sfm:ListMemoryNodes | ListMemoryNodes | list | *All Resource
| なし | なし |
| sfm:DeleteIndex | DeleteIndex | none | *All Resource
| なし | なし |
| sfm:ListIndex | ListIndices | list | *All Resource
| なし | なし |
| sfm:UpdateMemoryNode | UpdateMemoryNode | update | *All Resource
| なし | なし |
| sfm:CreateIndex | CreateIndex | create | *All Resource
| なし | なし |
| sfm:ListPromptTemplates | ListPromptTemplates | list | *All Resource
| なし | なし |
| sfm:UpdateTableFromAuthorizedOss | UpdateTableFromAuthorizedOss | update | *All Resource
| なし | なし |
| sfm:SubmitIndexAddDocumentsJob | SubmitIndexAddDocumentsJob | create | *All Resource
| なし | なし |
| sfm:UpdateFileTag | UpdateFileTag | update | *All Resource
| なし | なし |
| sfm:ListIndexFiles | ListIndexDocuments | list | *All Resource
| なし | なし |
| sfm:GetPromptTemplate | GetPromptTemplate | get | *All Resource
| なし | なし |
| sfm:Retrieve | Retrieve | none | *All Resource
| なし | なし |
| sfm:DeleteIndexDocument | DeleteIndexDocument | delete | *All Resource
| なし | なし |
| sfm:DescribeFile | DescribeFile | none | *All Resource
| なし | なし |
| sfm:ChunkList | ListChunks | list | *All Resource
| なし | なし |
| sfm:CreatePromptTemplate | CreatePromptTemplate | create | *All Resource
| なし | なし |
| sfm:AddTable | AddTable | create | *All Resource
| なし | なし |
リソース (Resource)
下表に、Alibaba Cloud Model Studio で定義されたリソースを示します。ポリシーステートメントのResource要素で指定することで、特定のアクションの適用対象を設定できます。各リソースは対応する ARN を持ち、一意的に識別されます。ARN はacs:{#ramcode}:{#regionId}:{#accountId}:{#resourceType}形式で、構成要素は以下のとおりです。
acs:Alibaba Cloud Service の頭文字で、Alibaba Cloud のパブリッククラウドを指します。{#ramcode}:RAM における具体的な Alibaba Cloud サービスの識別コード。{#regionId}:リージョン ID。アスタリスク (*) に設定した場合、リソースがすべてのリージョンに適用することを示します。{#accountId}:Alibaba Cloud アカウントの ID。アスタリスク (*) に設定した場合、リソースがすべての Alibaba Cloud アカウントに適用することを示します。{#resourceType}:具体的な Alibaba Cloud サービスによって定義されたリソースの識別子で、ファイルパスに似た階層構造をサポートしています。アスタリスク (*) に設定した場合、ステートメントがすべてのリソースに適用することを示します。
リソースタイプ | ARN |
|---|
条件 (Condition)
Alibaba Cloud Model Studioでは、プロダクトレベルの条件キーは定義されていません。その代わりに、Alibaba Cloud 共通条件キーを使用してアクセスを制御できます。詳細については、「共通条件キー」をご参照ください。
カスタム RAM ポリシーの作成方法
カスタムポリシーを作成し、RAM ユーザー、RAM ユーザーグループ、または RAM ロールに付与できます。詳細については、以下をご参照ください。