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

Container Service for Kubernetes:RAMを使用したクラスターおよびクラウドリソースへのアクセス許可

最終更新日:Nov 15, 2024

デフォルトでは、Resource Access Management (RAM) ユーザーとRAMロールには、Alibaba CloudサービスAPIを呼び出す権限がありません。 Container Service for Kubernetes (ACK) のAPIを使用するには、RAMユーザーとRAMロールに権限を付与する必要があります。 このトピックでは、クラスターとクラウドリソースにアクセスするためにRAMユーザーとRAMロールに権限を割り当てるプロセスについて説明します。

システムポリシーのアタッチ

この方法を使用して、Alibaba Cloudアカウントのすべてのクラスターに対するRAMユーザーとRAMロールの読み取りおよび書き込み権限を付与できます。 Alibaba CloudアカウントのすべてのACKクラスターでO&M権限が必要なRAMユーザーまたはRAMロールの場合、迅速な承認のためにシステムポリシーを使用することを推奨します。 次の表に、ACKで一般的に使用されるシステムポリシーを示します。

重要

システムポリシーのフルレベルの権限は非常にリスクが高いと見なされます。 潜在的なセキュリティ問題を回避するために、慎重にそれらを付与することを推奨します。

ACKの一般的に使用されるシステムポリシーを表示するために展開

システムポリシー名

説明

AliyunCSFullAccess

このポリシーは、すべてのACK API操作を呼び出す権限を提供します。

説明

このポリシーには、ACKに関連する権限のみが含まれます。 ACKクラスターにデプロイされたアプリケーションを管理および維持するには、ロールベースのアクセス制御 (RBAC) 権限を付与する必要があります。 詳細については、「RBAC認証」をご参照ください。

AliyunVPCReadOnlyAccess

このポリシーは、作成するACKクラスターの仮想プライベートクラウド (VPC) を指定する権限を提供します。

AliyunECSReadOnlyAccess

このポリシーは、既存のノードをACKクラスターに追加したり、ノードに関する詳細情報を表示したりする権限を提供します。

AliyunContainerRegistryFullAccess

このポリシーは、Alibaba Cloudアカウントに属するすべてのイメージを管理する権限を提供します。

AliyunLogReadOnlyAccess

このポリシーには、作成するACKクラスターのログを保存する既存のログプロジェクトを選択したり、ACKクラスターの構成検査情報を表示したりする権限があります。

AliyunAHASReadOnlyAccess

このポリシーは、クラスタートポロジ機能を使用するための権限を提供します。

AliyunRAMFullAccess

このポリシーは、Alibaba Cloudアカウント内のすべての権限を管理する権限を提供します。

AliyunYundunSASReadOnlyAccess

このポリシーは、ACKクラスターのランタイムモニタリングデータを表示する権限を提供します。

AliyunARMSReadOnlyAccess

このポリシーは、ACKクラスターのManaged Service for Prometheusプラグインのモニタリングデータを表示するための権限を提供します。

AliyunKMSReadOnlyAccess

このポリシーは、作成するACK Proクラスターのシークレット暗号化機能を有効にする権限を提供します。

AliyunESSReadOnlyAccess

このポリシーは、ノードプールの表示、変更、スケーリングなどのノードプール操作を実行する権限を提供します。

説明

Alibaba Cloudアカウントには、アカウント内のリソースに対する完全な管理権限があります。 RAMユーザーを作成し、RAMユーザーにAdministratorAccessポリシーをアタッチできます。 その後、RAMユーザーをアカウント管理者として使用して、Alibaba cloudアカウントに属するすべてのクラウドリソースを管理できます。 詳細については、「アカウント管理者としてのRAMユーザーの作成」をご参照ください。

  1. RAMコンソールRAM管理者として ログインします。

  2. 左側のナビゲーションウィンドウで、[ID] > [ユーザー] を選択します。

  3. ユーザーページで必要なRAMユーザーを見つけ、アクション列で権限の追加をクリックします。

    image

    複数のRAMユーザーを選択し、ページ下部の [権限の追加] をクリックして、RAMユーザーに一度に権限を付与することもできます。

  4. 権限付与パネルで、RAMユーザーに権限を付与します。

    1. [リソーススコープ] パラメーターを設定します。

    2. Principalパラメーターを設定します。

      プリンシパルは、権限を付与するRAMユーザーです。 現在のRAMユーザーが自動的に選択されます。

    3. アタッチするシステムポリシーを選択します。

    4. [権限付与] をクリックします。

  5. クリック閉じる.

カスタムポリシーのアタッチ

この方法を使用して、クラウドリソースに対するRAMユーザーとRAMロールの権限をきめ細かく制御できます。 カスタムポリシーは、RAMユーザーとRAMロールの特定のセキュリティとアクセス要件に合わせて、クラウドリソースのきめ細かなアクセス制御を可能にします。 たとえば、ユーザーの権限を特定のクラスターに制限するには、カスタムポリシーを作成します。 さらに、RAMユーザーがSDKを使用してカスタム開発の権限を必要とする場合、この方法を使用して、RAMユーザーに指定されたAPI操作を呼び出す権限を付与できます。 RAMでサポートされている権限付与操作の詳細については、「RAM権限付与」をご参照ください。

説明

カスタムポリシーを作成するには、ポリシーの基本構造と構文を理解する必要があります。 詳細については、「ポリシー要素」をご参照ください。

手順 1:カスタムポリシーの作成

  1. RAMコンソールRAM管理者として ログインします

  2. 左側のナビゲーションウィンドウで、権限 > ポリシーを選択します。

  3. ポリシーページでポリシーの作成をクリックします。

  4. [ポリシーの作成] ページで、[JSON] タブをクリックし、ポリシーの次の内容を入力します。

    {
     "Statement": [{
         "Action": [
             "cs:Get*",
             "cs:List*",
             "cs:Describe*",
             "cs:ScaleCluster",
             "cs:DeleteCluster"
         ],
         "Effect": "Allow",
         "Resource": [
             "acs:cs:*:*:cluster/cluster ID"
         ]
     }],
     "Version": "1"
    }

    パラメーター

    説明

    Action

    付与する権限。 ワイルドカード文字がサポートされています。

    Resource

    次の設定オプションから選択します。 クラスターIDをクラスターの実際のIDに置き換えます。

    • 1つのクラスターに権限を付与

      "Resource": [
           "acs:cs:*:*:cluster/cluster ID"
       ]
    • 複数のクラスターへの権限付与

      "Resource": [
           "acs:cs:*:*:cluster/cluster ID",
           "acs:cs:*:*:cluster/cluster ID"
       ]
    • すべてのクラスターに権限を付与

      "Resource": [
           "*"
       ]
  5. [次へ] をクリックし、ポリシーの名前を入力して [OK] をクリックします。

  6. [ポリシー] ページに戻ります。 ポリシーの名前または説明を検索ボックスに入力して、ポリシーを検索できます。

手順2: RAMユーザーまたはRAMロールにカスタムポリシーをアタッチする

カスタムポリシーは、システムポリシーをアタッチするのと同じ方法でアタッチできます。 詳細については、「システムポリシーのアタッチ」をご参照ください。

カスタムポリシーの例

例1: 指定したクラスターに読み取り専用権限を付与する

{
  "Statement": [
    {
      "Action": [
        "cs:Get*",
        "cs:List*",
        "cs:Describe*"
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:cs:*:*:cluster/<yourclusterID>" # Target cluster ID.
      ]
    }
  ],
  "Version": "1"
}

例2: 指定したOSSバケットに読み取り権限を付与する

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                      "oss:ListBuckets",
                      "oss:GetBucketStat",
                      "oss:GetBucketInfo",
                      "oss:GetBucketTagging",
                      "oss:GetBucketAcl" 
                      ],    
            "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/*"
        }
    ]
}

例3: 権限を付与してクラスター以外のAPI操作を呼び出す

RAMユーザーにDescribeEventsなどの非クラスター固有のAPIを呼び出す権限を付与する場合は、ポリシーコンテンツの [リソース] フィールドにクラスターIDを指定しないでください。 次の表は、変更前と変更後のRAMポリシーの比較を示しています。

変更前

変更後

{
    "Statement": [
        {
            "Action": [
                "cs:Get*",
                "cs:List*",
                "cs:Describe*"
            ],
            "Effect": "Allow",
            "Resource": [
                "acs:cs:*:*:cluster/c2e63856bcd714197****"
            ]
        }
    ],
    "Version": "1"
}
{
    "Statement": [
        {
            "Action": [
                "cs:DescribeEvents"
            ],
            "Effect": "Allow",
            "Resource": [
              "*"
            ]
        },
        {
            "Action": [
                "cs:Get*",
                "cs:List*",
                "cs:Describe*"
            ],
            "Effect": "Allow",
            "Resource": [
                "acs:cs:*:*:cluster/c2e63856bcd714197****"
            ]
        }
    ],
    "Version": "1"
}

次に何をすべきか