Resource Access Management (RAM) は Alibaba Cloud によって提供される、ユーザーのアイデンティティとリソースの権限を管理するためのサービスです。RAM を使用すると、Alibaba Cloud アカウント (root ユーザー) のキーを他のユーザーと共有することを回避でき、ユーザーに必要最小限の権限を付与できます。RAM ではポリシーを使用して権限付与を定義します。このトピックでは、RAM ポリシーの一般的な構造と、 Container Service for Kubernetes のポリシーステートメントを構成する要素である「アクション (Action)」「リソース (Resource)」および「条件 (Condition) 」について説明します。 Container Service for Kubernetes は、RAM コード (RamCode) が cs で、 Resource-level での権限付与がサポートされています。
一般的なポリシー構造
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)
下表に、Container Service for Kubernetes で定義されたアクションを示します。以下で各列名について説明します。
アクション:特定のリソースに対して実行可能な操作。ポリシー構文では
Action要素として指定します。API:アクションを具体的に実行するための API。
アクセスレベル:各 API に対して事前定義されているアクセスの種類。有効な値:create、list、get、update、delete。
リソースタイプ:アクションが作用するリソースの種類。リソースレベルでの権限をサポートするかどうかを示すことができます。ポリシーの有効性を確保するため、アクションの対象として適切なリソースを指定する必要があります。
リソースレベルの権限を持つ API の場合、必要なリソースタイプはアスタリスク (*) でマークされます。ポリシーの
Resource要素で対応する ARN を指定してください。リソースレベルの権限を持たない API の場合、「すべてのリソース」と表示され、ポリシーの
Resource要素でアスタリスク (*) でマークされます。
条件キー:サービスによって定義された条件のキー。このキーにより、きめ細やかなアクセス制御が可能になります。この制御は、アクション単体に適用することも、特定のリソースに対するアクションに適用することもできます。Alibaba Cloud は、サービス固有の条件キーに加えて、すべての RAM 統合サービスに適用可能な一連の共通条件キーを提供しています。詳細については、「共通条件キー」をご参照ください。
依存アクション:ある特定のアクションを実行するために、前提として実行が必要となる他のアクション。依存アクションの権限も RAM ユーザーまたは RAM ロールに付与する必要があります。
|
アクション |
API |
アクセスレベル |
リソースタイプ |
条件キー |
依存アクション |
| cs:RunClusterCheck | RunClusterCheck | none |
*Cluster
|
なし | なし |
| cs:InstallNodePoolComponents | InstallNodePoolComponents | none |
*Cluster
|
なし | なし |
| cs:ResumeUpgradeCluster | ResumeUpgradeCluster | update |
*Cluster
|
なし | なし |
| cs:GetUpgradeStatus | GetUpgradeStatus | get |
*Cluster
|
なし | なし |
| cs:CreateCluster | CreateCluster | create |
*Cluster
|
cs:ClusterType cs:ClusterSpec cs:ClusterProfile cs:EnableSecretEncryption cs:EnableApiServerEip cs:EnableAddonLogtailDs cs:EnableCoreControlPlaneComponentsLog cs:AddonNames cs:EnableSNAT cs:EnableNodePoolPublicIP |
なし |
| cs:Queryk8sComponentsUpdateVersion | DescribeClusterAddonsVersion | get |
*Cluster
|
なし | なし |
| cs:GetClusterAddonInstance | GetClusterAddonInstance | get |
*Cluster
|
なし | なし |
| cs:CreateTemplate | CreateTemplate | create |
*All Resources
|
なし | なし |
| cs:DeleteAutoRepairPolicy | DeleteAutoRepairPolicy | none |
*Cluster
|
なし | なし |
| cs:ModifyAutoRepairPolicy | ModifyAutoRepairPolicy | none |
*Cluster
|
なし | なし |
| cs:RemoveNodePoolNodes | RemoveNodePoolNodes | update |
*Cluster
|
なし | なし |
| cs:DeleteCluster | DeleteCluster | delete |
*Cluster
|
なし | なし |
| cs:DescribeKubernetesVersionMetadata | DescribeKubernetesVersionMetadata | get |
*All Resources
|
なし | なし |
| cs:QueryK8sComponentUpgradeStatus | DescribeClusterAddonUpgradeStatus | get |
*Cluster
|
なし | なし |
| cs:DescribeResourcesDeleteProtection | DescribeResourcesDeleteProtection | get |
*Cluster
|
なし | なし |
| cs:DescribeClusterUserKubeconfig | DescribeClusterUserKubeconfig | get |
*Cluster
|
cs:KubeConfigDurationMinutes |
なし |
| cs:ListClusterAddonInstances | ListClusterAddonInstances | list |
*Cluster
|
なし | なし |
| cs:DeleteClusterNodepool | DeleteClusterNodepool | delete |
*Cluster
|
なし | なし |
| cs:DescribeClusterAddonsUpgradeStatus | DescribeClusterAddonsUpgradeStatus | get |
*Cluster
|
なし | なし |
| cs:ListUserKubeConfigStates | ListUserKubeConfigStates | none |
*All Resources
|
なし | なし |
| cs:PauseComponentUpgrade | PauseComponentUpgrade | none |
*Cluster
|
なし | なし |
| cs:CancelComponentUpgrade | CancelComponentUpgrade | none |
*Cluster
|
なし | なし |
| cs:CancelTask | CancelTask | update |
*All Resources
|
なし | なし |
| cs:CreateKubernetesTrigger | CreateKubernetesTrigger | create |
*All Resources
|
なし | なし |
| cs:MigrateCluster | MigrateCluster | update |
*Cluster
|
なし | なし |
| cs:CancelOperationPlan | CancelOperationPlan | delete |
*All Resources
|
なし | なし |
| cs:GetClusters | DescribeClusters | get |
*Cluster
|
なし | なし |
| cs:ModifyClusterAddon | ModifyClusterAddon | update |
*Cluster
|
cs:AddonName cs:AddonNames |
なし |
| cs:CreateClusterInspectConfig | CreateClusterInspectConfig | create |
*Cluster
|
なし | なし |
| cs:DeleteTrigger | DeleteTrigger | delete |
*Cluster
|
なし | なし |
| cs:ListOperationPlans | ListOperationPlans | list |
*All Resources
|
なし | なし |
| cs:GetKubernetesTrigger | GetKubernetesTrigger | get |
*Cluster
|
なし | なし |
| cs:UpdateContactGroupForAlert | UpdateContactGroupForAlert | update |
*Cluster
|
なし | なし |
| cs:ModifyNodePoolNodeConfig | ModifyNodePoolNodeConfig | update |
*Cluster
|
なし | なし |
| cs:GetClusterInspectReportDetail | GetClusterInspectReportDetail | get |
*Cluster
|
なし | なし |
| cs:DescribeEvents | DescribeEvents | get |
*All Resources
|
なし | なし |
| cs:CreateAutoRepairPolicy | CreateAutoRepairPolicy | none |
*Cluster
|
なし | なし |
| cs:ScaleClusterNodePool | ScaleClusterNodePool | update |
*Cluster
|
なし | なし |
| cs:UpdateClusterInspectConfig | UpdateClusterInspectConfig | update |
*Cluster
|
なし | なし |
| cs:GetClusterDiagnosisResult | GetClusterDiagnosisResult | get |
*Cluster
|
なし | なし |
| cs:DeleteKubernetesTrigger | DeleteKubernetesTrigger | delete |
*All Resources
|
なし | なし |
| cs:StartAlert | StartAlert | update |
*Cluster
|
なし | なし |
| cs:OpenAckService | OpenAckService | update |
*All Resources
|
なし | なし |
| cs:DescribeSubaccountK8sClusterUserConfig | DescribeSubaccountK8sClusterUserConfig | get |
*Cluster
|
なし | なし |
| cs:DescribeExternalAgent | DescribeExternalAgent | get |
*Cluster
|
なし | なし |
| cs:GetClusterDiagnosisCheckItems | GetClusterDiagnosisCheckItems | get |
*Cluster
|
なし | なし |
| cs:DescribeTaskInfo | DescribeTaskInfo | get |
*All Resources
|
なし | なし |
| cs:DescribeUserClusterNamespaces | DescribeUserClusterNamespaces | get |
*Cluster
|
なし | なし |
| cs:GetClusterCheck | GetClusterCheck | list |
*Cluster
|
なし | なし |
| cs:DeletePolicyInstance | DeletePolicyInstance | delete |
*Cluster
|
なし | なし |
| cs:DeleteClusterNodes | DeleteClusterNodes | delete |
*Cluster
|
なし | なし |
| cs:CreateClusterNodePool | CreateClusterNodePool | create |
*Cluster
|
なし | なし |
| cs:DescribeRegions | DescribeRegions | get |
*All Resources
|
なし | なし |
| cs:UpgradeK8sComponents | UpgradeClusterAddons | update |
*Cluster
|
なし | なし |
| cs:ListClusterChecks | ListClusterChecks | list |
*Cluster
|
なし | なし |
| cs:AttachInstances | AttachInstances | update |
*Cluster
|
なし | なし |
| cs:DeleteClusterInspectConfig | DeleteClusterInspectConfig | delete |
*Cluster
|
なし | なし |
| cs:DeleteTemplate | DeleteTemplate | delete |
*All Resources
|
なし | なし |
| cs:CreateClusterDiagnosis | CreateClusterDiagnosis | create |
*Cluster
|
なし | なし |
| cs:ScanClusterVuls | ScanClusterVuls | update |
*Cluster
|
なし | なし |
| cs:ListClusterInspectReports | ListClusterInspectReports | list |
*Cluster
|
なし | なし |
| cs:DescribeTemplates | DescribeTemplates | get |
*All Resources
|
なし | なし |
| cs:CreateAutoscalingConfig | CreateAutoscalingConfig | create |
*Cluster
|
なし | なし |
| cs:DescribePolicyDetails | DescribePolicyDetails | get |
*All Resources
|
なし | なし |
| cs:ListAutoRepairPolicies | ListAutoRepairPolicies | none |
*Cluster
|
なし | なし |
| cs:ModifyClusterTags | ModifyClusterTags | update |
*Cluster
|
なし | なし |
| cs:UpdateTemplate | UpdateTemplate | update |
*All Resources
|
なし | なし |
| cs:ListTagResources | ListTagResources | get |
*All Resources
|
なし | なし |
| cs:GetClusterInspectConfig | GetClusterInspectConfig | get |
*Cluster
|
なし | なし |
| cs:ListClusterAddonInstanceResources | ListClusterAddonInstanceResources | list |
*Cluster
|
なし | なし |
| cs:DescribeClusterEvents | DescribeClusterEvents | get |
*Cluster
|
なし | なし |
| cs:DescribeAddons | DescribeAddons | get |
*All Resources
|
なし | なし |
| cs:UnInstallClusterAddons | UnInstallClusterAddons | delete |
*Cluster
|
cs:EnableAddonLogtailDs |
なし |
| cs:UpdateResourcesDeleteProtection | UpdateResourcesDeleteProtection | update |
*Cluster
|
なし | なし |
| cs:UpdateKMSEncryption | UpdateKMSEncryption | none |
*Cluster
|
なし | なし |
| cs:SyncClusterNodePool | SyncClusterNodePool | update |
*Cluster
|
なし | なし |
| cs:DescribePolicies | DescribePolicies | get |
*All Resources
|
なし | なし |
| cs:InstallClusterAddons | InstallClusterAddons | create |
*Cluster
|
cs:AddonNames |
なし |
| cs:DescribeUserQuota | DescribeUserQuota | get |
*All Resources
|
なし | なし |
| cs:ResumeTask | ResumeTask | update |
*All Resources
|
なし | なし |
| cs:GetClusters | DescribeClustersV1 | get |
*Cluster
|
なし | なし |
| cs:UntagResources | UntagResources | delete |
*All Resources
|
なし | なし |
| cs:ModifyClusterNodePool | ModifyClusterNodePool | update |
*Cluster
|
なし | なし |
| cs:DescribeClusterNodePoolDetail | DescribeClusterNodePoolDetail | get |
*Cluster
|
なし | なし |
| cs:DescribePolicyInstances | DescribePolicyInstances | get |
*Cluster
|
なし | なし |
| cs:RunClusterInspect | RunClusterInspect | create |
*Cluster
|
なし | なし |
| cs:CancelClusterUpgrade | CancelClusterUpgrade | delete |
*Cluster
|
なし | なし |
| cs:DeleteAlertContact | DeleteAlertContact | delete |
*All Resources
|
なし | なし |
| cs:CheckControlPlaneLogEnable | CheckControlPlaneLogEnable | get |
*Cluster
|
なし | なし |
| cs:GetUserPermissions | DescribeUserPermission | get |
*All Resources
|
なし | なし |
| cs:DeployPolicyInstance | DeployPolicyInstance | get |
*Cluster
|
なし | なし |
| cs:ModifyPolicyInstance | ModifyPolicyInstance | update |
*Cluster
|
なし | なし |
| cs:DescribeClusterNodePools | DescribeClusterNodePools | get |
*Cluster
|
なし | なし |
| cs:RepairClusterNodePool | RepairClusterNodePool | update |
*Cluster
|
なし | なし |
| cs:DescribeClusterAddonMetadata | DescribeClusterAddonMetadata | get |
*Cluster
|
なし | なし |
| cs:UpdateClusterAuditLogConfig | UpdateClusterAuditLogConfig | none |
*Cluster
|
なし | なし |
| cs:DeleteAlertContactGroup | DeleteAlertContactGroup | delete |
*All Resources
|
なし | なし |
| cs:CleanClusterUserPermissions | CleanClusterUserPermissions | none |
*Cluster
|
なし | なし |
| cs:UpgradeCluster | UpgradeCluster | update |
*Cluster
|
なし | なし |
| cs:ModifyCluster | ModifyCluster | update |
*Cluster
|
cs:EnableApiServerEip cs:ApiServerEipId |
なし |
| cs:DescribeClusterResources | DescribeClusterResources | get |
*Cluster
|
なし | なし |
| cs:PauseTask | PauseTask | update |
*All Resources
|
なし | なし |
| cs:DescribeClusterTasks | DescribeClusterTasks | get |
*Cluster
|
なし | なし |
| cs:GrantPermission | GrantPermissions | update |
*All Resources
|
なし | なし |
| cs:DescribeClusterDetail | DescribeClusterDetail | get |
*Cluster
|
なし | なし |
| cs:CreateTrigger | CreateTrigger | create |
*All Resources
|
なし | なし |
| cs:DescribeClusterAddonInstance | DescribeClusterAddonInstance | get |
*Cluster
|
なし | なし |
| cs:DescribeClusterV2UserKubeconfig | DescribeClusterV2UserKubeconfig | get |
*Cluster
|
cs:KubeConfigDurationMinutes |
なし |
| cs:StopAlert | StopAlert | update |
*Cluster
|
なし | なし |
| cs:DescribeClusterNodes | DescribeClusterNodes | get |
*Cluster
|
なし | なし |
| cs:TagResources | TagResources | update |
*All Resources
|
なし | なし |
| cs:DescribeAddon | DescribeAddon | get |
*All Resources
|
なし | なし |
| cs:ListOperationPlansForRegion | ListOperationPlansForRegion | none |
*All Resources
|
なし | なし |
| cs:DescribeTemplateAttribute | DescribeTemplateAttribute | get |
*All Resources
|
なし | なし |
| cs:PauseClusterUpgrade | PauseClusterUpgrade | update |
*Cluster
|
なし | なし |
| cs:CheckServiceRole | CheckServiceRole | none |
*All Resources
|
なし | なし |
| cs:ResumeComponentUpgrade | ResumeComponentUpgrade | update |
*Cluster
|
なし | なし |
| cs:FixNodePoolVuls | FixNodePoolVuls | update |
*Cluster
|
なし | なし |
| cs:DescribeClusterAttachScripts | DescribeClusterAttachScripts | update |
*Cluster
|
なし | なし |
| cs:UpdateNodePoolComponent | UpdateNodePoolComponent | update |
*Cluster
|
なし | なし |
| cs:UpdateK8sClusterUserConfigExpire | UpdateK8sClusterUserConfigExpire | update |
*Cluster
|
なし | なし |
| cs:DescribeTrigger | DescribeTrigger | get |
*Cluster
|
なし | なし |
| cs:DescribeClustersForRegion | DescribeClustersForRegion | list |
*All Resources
|
なし | なし |
| cs:ListAddons | ListAddons | list |
*All Resources
|
なし | なし |
| cs:DescribeClusterVuls | DescribeClusterVuls | get |
*Cluster
|
なし | なし |
| cs:DescribePolicyInstancesStatus | DescribePolicyInstancesStatus | get |
*Cluster
|
なし | なし |
| cs:AttachInstancesToNodePool | AttachInstancesToNodePool | update |
*Cluster
|
なし | なし |
| cs:ListClusterKubeconfigStates | ListClusterKubeconfigStates | none |
*Cluster
|
なし | なし |
| cs:DescribeClusterLogs | DescribeClusterLogs | get |
*Cluster
|
なし | なし |
| cs:DescribeEventsForRegion | DescribeEventsForRegion | list |
*All Resources
|
なし | なし |
| cs:RevokeK8sClusterKubeConfig | RevokeK8sClusterKubeConfig | none |
*Cluster
|
なし | なし |
| cs:UpdateUserPermissions | UpdateUserPermissions | none |
*All Resources
|
なし | なし |
| cs:CleanUserPermissions | CleanUserPermissions | none |
*All Resources
|
なし | なし |
| cs:GetClusterAuditProject | GetClusterAuditProject | get |
*Cluster
|
なし | なし |
| cs:UpdateControlPlaneLog | UpdateControlPlaneLog | update |
*Cluster
|
cs:EnableCoreControlPlaneComponentsLog |
なし |
| cs:UpgradeClusterNodepool | UpgradeClusterNodepool | update |
*Cluster
|
なし | なし |
| cs:DescribeNodePoolVuls | DescribeNodePoolVuls | get |
*Cluster
|
なし | なし |
| cs:DescribeAutoRepairPolicy | DescribeAutoRepairPolicy | none |
*Cluster
|
なし | なし |
| cs:DescribePolicyGovernanceInCluster | DescribePolicyGovernanceInCluster | get |
*Cluster
|
なし | なし |
リソース (Resource)
下表に、Container Service for Kubernetes で定義されたリソースを示します。ポリシーステートメントの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 |
| Cluster |
|
| Unrestricted |
|
条件 (Condition)
下表に、Container Service for Kubernetes で定義されたプロダクトレベルの条件キーを示します。このほかに、Alibaba Cloud の共通条件キーを使用することもできます。これらのキーをポリシーステートメントのCondition要素として指定することで、きめ細かい権限付与ルールを定義できます。条件キーで、ポリシーのCondition_value要素で条件の値を指定します。
各条件キーには、文字列、数値、ブール値、IP アドレスといった特定のデータ型が定められています。データ型によって使用できる条件演算子が異なるため、キーのデータ型に基づいて適切な演算子を指定する必要があります。不適切な演算子を指定した場合、ポリシーステートメントは機能しません。データ型と条件演算子の対応関係については、「Condition_operator」をご参照ください。
条件キー |
説明 |
データ型 |
| cs:EnableAddonLogtailDs | クラスターで logtail-ds ロギングコンポーネントが有効かどうか。 | Boolean |
| cs:EnableApiServerEip | クラスターで API Server のパブリックアクセスが有効かどうか。 | Boolean |
| cs:EnableSNAT | クラスター VPC の SNAT 構成を許可するかどうか。 | Boolean |
| cs:AddonNames | クラスターコンポーネントオペレーションの対象コンポーネント。値の例: [\\\\\\\\\\"metrics-サーバー\\\\\\\\\\",\\\\\\\\\\"terway-eniip\\\\\\\\\\"]。 |
Array |
| cs:ClusterType | クラスタータイプ。 | String |
| cs:ClusterSpec | マネージドクラスターのスペック。 | String |
| cs:AddonName | クラスターコンポーネント名。値の例: aliyun-acr-認証情報-helper, metrics-サーバー。 | String |
| cs:EnableSecretEncryption | ACK クラスターでシークレットの保存時暗号化が有効かどうか。 | Boolean |
| cs:ClusterProfile | マネージドクラスターのサブタイプ識別子。 | String |
| cs:ApiServerEipId | クラスター API Server にバインドされた EIP インスタンス ID。値の例: eip-2zep1n4o1ic48m3m****。 | String |
| cs:EnableNodePoolPublicIP | クラスター内の各ノードにパブリック IPv4 アドレスの割り当てを許可するかどうか。 | Boolean |
| cs:EnableCoreControlPlaneComponentsLog | クラスターでコントロールプレーンのコアコンポーネントログが有効かどうか。 | Boolean |
| cs:KubeConfigDurationMinutes | クラスターの kubeconfig 認証情報の有効期間(分単位)。 | Numeric |
カスタム RAM ポリシーの作成方法
カスタムポリシーを作成し、RAM ユーザー、RAM ユーザーグループ、または RAM ロールに付与できます。詳細については、以下をご参照ください。