すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:認証の概要

最終更新日:Dec 27, 2024

Alibaba Cloud Container Compute Service (ACS) の認証システムは、Resource Access Management (RAM) 認証とロールベースのアクセス制御 (RBAC) 認証で構成されています。RAM 認証はクラウド リソースへの権限を付与するために使用されます。RBAC 認証は、ACS クラスタ内のリソースへの権限を付与するために使用されます。このトピックでは、RAM 認証と RBAC 認証、および ACS クラスタでこれらの認証を実行する方法について説明します。

ACS 認証システム

ACS の認証システムは、コンピューティング リソース用の RAM 認証と ACS クラスタ用の RBAC 認証で構成されています。次の図は、ACS 認証システムを示しています。

  • RAM 認証には、クラスタの運用操作が含まれます。ACS クラスタは Container Service for Kubernetes (ACK) Serverless クラスタの一種であり、ACS クラスタで運用操作を実行するには、ACK API を呼び出す必要があります。したがって、ACK およびその他の Alibaba Cloud サービスの API 操作を呼び出す権限を取得する必要があります。これらの API 操作を呼び出して、次の運用操作を実行できます。

    • クラスタの作成、表示、削除。

    • RBAC 認証の管理。

    • クラスタの監視とログおよびイベントの管理。

  • RBAC 認証は、ACS クラスタ内の Kubernetes リソースに対して、名前空間レベルまたはクラスタ全体の権限を付与するために使用されます。これにより、次のタイプの Kubernetes リソースを作成、削除、変更、および表示する権限を付与できます。

    • ワークロードリソース: Deployment、StatefulSet、Job、CronJob、pod、ReplicaSet、HorizontalPodAutoscaler (HPA) など。

    • ネットワークリソース: Service、Ingress、NetworkPolicy など。

    • ストレージリソース: 永続ボリューム (PV)、永続ボリュームクレーム (PVC)、StorageClass など。

    • 名前空間、ConfigMap、Secret。

RAM ユーザーまたは RAM ロールを使用してクラスタとクラスタ内のアプリケーションを管理する場合は、RAM ユーザーまたは RAM ロールに対して RAM 認証と RBAC 認証の両方を実行する必要があります。RBAC 認証を実行する前に、RAM 認証を完了する必要があります。さまざまなシナリオで認証を完了するには、次のトピックを参照してください。

RAM 認証

企業がシステムを RAM と連携させる場合、運用エンジニアは RAM ユーザーまたは RAM ロールを使用してクラウド リソースを管理する必要があります。デフォルトでは、RAM ユーザーまたは RAM ロールはクラウド サービスの API を呼び出す権限を持っていません。最初に、必要な権限を RAM ユーザーまたは RAM ロールに付与する必要があります。

次のいずれかの方法を使用して RAM 認証を実行できます。

  • システムポリシーのアタッチ: この方法を使用して、RAM ユーザーまたは RAM ロールにグローバルリソースに対する読み取りおよび書き込み権限を付与できます。システムポリシーを使用して、Alibaba Cloud に属するすべてのクラスタに対する運用権限を付与することをお勧めします。詳細については、RAM ユーザーまたは RAM ロールに権限を付与する を参照してください。

    次の表は、ACS に関連する一般的に使用されるシステムポリシーについて説明しています。要件に基づいてシステムポリシーを選択できます。

    システムポリシー

    説明

    AliyunCSFullAccess

    このポリシーは、ACS クラスタを作成するときに、RAM ユーザーまたは RAM ロールにすべての ACK API 操作を呼び出す権限を提供します。

    重要

    この権限の範囲には、ACS クラスタを除くすべての ACK クラスタが含まれます。このポリシーは慎重に使用してください。このポリシーは、ACK API 操作の RAM 認証のみを対象としています。ACS クラスタ内のアプリケーションを管理する場合は、RBAC 認証を実行する必要があります。詳細については、RBAC 認証 を参照してください。

    AliyunCSReadOnlyAccess

    このポリシーは、RAM ユーザーまたは RAM ロールに、ACK のすべての読み取り専用 API 操作を呼び出す権限を提供します。この権限の範囲には、ACS クラスタを除くすべての ACK クラスタが含まれます。このポリシーは慎重に使用してください。

    AliyunACCFullAccess

    このポリシーは、RAM ユーザーまたは RAM ロールにすべての ACS API 操作へのアクセス権限を提供します。

    AliyunACCReadOnlyAccess

    このポリシーは、RAM ユーザーまたは RAM ロールにすべての ACS API 操作に対する読み取り専用権限を提供します。

    AliyunVPCReadOnlyAccess

    このポリシーは、RAM ユーザーまたは RAM ロールに、作成される ACS クラスタに仮想プライベートクラウド (VPC) を指定する権限を提供します。

    AliyunContainerRegistryFullAccess

    このポリシーは、RAM ユーザーまたは RAM ロールに、Alibaba Cloud アカウント内のビジネスイメージに対する権限を提供します。

    AliyunLogReadOnlyAccess

    このポリシーは、RAM ユーザーまたは RAM ロールに、作成される ACS クラスタの監査ログを格納する既存のログプロジェクトを選択したり、ACS クラスタの構成検査情報を表示したりする権限を提供します。

    AliyunRAMFullAccess

    このポリシーは、RAM ユーザーまたは RAM ロールに、Alibaba Cloud アカウント内のグローバル認証を管理する権限を提供します。

    AliyunEBSFullAccess

    このポリシーは、RAM ユーザーまたは RAM ロールに、ディスクストレージサービスのすべての機能を使用する権限を提供します。

    AliyunARMSReadOnlyAccess

    このポリシーは、RAM ユーザーまたは RAM ロールに、Managed Service for Prometheus プラグインの監視データを表示する権限を提供します。

    AliyunKMSReadOnlyAccess

    このポリシーは、RAM ユーザーまたは RAM ロールに、作成される ACS クラスタの Key Management Service (KMS) 内のキーを表示する権限を提供します。

  • カスタムポリシーのアタッチ: この方法を使用して、きめ細かい方法でクラウド リソースに対する RAM ユーザーまたは RAM ロールの権限を制御できます。RAM ユーザーまたは RAM ロールが SDK に基づいてアプリケーションを開発する必要がある場合は、カスタムポリシーを使用して API 操作に対する権限を制御できます。

    たとえば、次のポリシーを使用して、RAM ユーザーまたは RAM ロールに Object Storage Service (OSS) バケットに対する読み取り権限を付与できます。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                          "oss:ListBuckets",
                          "oss:GetBucketStat",
                          "oss:GetBucketInfo",
                          "oss:GetBucketTagging",
                          "oss:GetBucketAcl" 
                          ],    // RAM ユーザーまたは RAM ロールに、指定された OSS バケットに対する読み取り権限を付与します。
                "Resource": "acs:oss:*:*:*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "oss:ListObjects",
                    "oss:GetBucketAcl"
                ],
                "Resource": "acs:oss:*:*:myphotos"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "oss:GetObject",
                    "oss:GetObjectAcl"
                ],
                "Resource": "acs:oss:*:*:myphotos/*"
            }
        ]
    }

ロールとクラスタロール

RBAC のロールまたはクラスタロールには、一連の権限を表すルールが含まれています。これらの権限は加算的であり、操作を禁止するルールは含まれていません。

ロールは名前空間リソースであり、特定の名前空間内の権限を定義します。ロールを作成するときは、ロールが属する名前空間を指定する必要があります。

クラスタロールは名前空間のないリソースであり、クラスタ全体の権限を定義します。Kubernetes オブジェクトは名前空間を持つものか、名前空間を持たないもののいずれかであるため、2 つのタイプのロールには異なる名前が付いています。

クラスタロールにはいくつかの用途があります。クラスタロールを使用して、次の方法で権限を構成できます。

  • クラスタロール内の名前空間リソースに対する権限を定義し、次にクラスタロールを使用して個々の名前空間内で権限を付与します。

  • クラスタロール内の名前空間リソースに対する権限を定義し、次にクラスタロールを使用してすべての名前空間で権限を付与します。

  • クラスタスコープのリソースに対する権限を定義します。

名前空間内でロールを定義する場合は、ロールを使用します。クラスタ全体のロールを定義する場合は、クラスタロールを使用します。

Kubernetes クラスタロールまたはロールの作成方法の詳細については、RBAC ロールのカスタマイズ を参照してください。

Kubernetes カスタム権限ポリシーを RAM ユーザーまたは RAM ロールにアタッチする方法の詳細については、RAM ユーザーまたは RAM ロールに RBAC 権限を付与する を参照してください。

重要

ACK では、クラスタロールのみを使用して RBAC 権限を付与できます。ロールを使用して RBAC 権限を付与することはできません。

RBAC ベースのアクセス制御

RAM ユーザーまたは RAM ロールに、pod 情報やノード情報の取得など、クラスタ内の指定された Kubernetes リソースを管理する権限を付与するには、ACS コンソール の認証ページに移動し、データプレーンリソースに対する権限を RAM ユーザーまたは RAM ロールに付与します。

次の定義済みロールを RAM ユーザーまたは RAM ロールに割り当てることができます。詳細については、RAM ユーザーまたは RAM ロールに RBAC 権限を付与する を参照してください。

次の表は、ロールの権限について説明しています。

ロール

クラスタリソースに対する RBAC 権限

管理者

すべての名前空間のリソースに対する読み取りおよび書き込み権限。

運用エンジニア

すべての名前空間のコンソールに表示されるリソースに対する読み取りおよび書き込み権限、およびノード、PV、名前空間、クォータに対する読み取り専用権限。

開発者

指定された名前空間またはすべての名前空間のコンソールに表示されるリソースに対する読み取りおよび書き込み権限。

制限付きユーザー

指定された名前空間またはすべての名前空間のコンソールに表示されるリソースに対する読み取り専用権限。

カスタムロール

カスタムロールの権限は、選択したクラスタロールによって決まります。クラスタロールを選択する前に、クラスタロールの権限を確認し、必要な権限のみを RAM ユーザーまたは RAM ロールに付与してください。クラスタロールの詳細については、RBAC ロールのカスタマイズ を参照してください。