メインコンテンツまでスキップ
バージョン: User Guides (BYOC)

EKS IAMロールの作成

このページでは、Zilliz Cloud が Zilliz Cloud プロジェクト用にEKSクラスターを展開するためのIAMロールの作成および構成方法について説明します。

📘Notes

Zilliz BYOC は現在、一般提供されています。アクセスおよび実装の詳細については、Zilliz Cloud 営業担当にお問い合わせください。

手順

AWSコンソールを使用してEKSロールを作成できます。別の方法として、Zilliz Cloud が提供するTerraformスクリプトを使用して、AWS 上の Zilliz Cloud プロジェクト用インフラストラクチャをブートストラップできます。詳細については、Terraform プロバイダー を参照してください。

ステップ1: IAMロールを作成

このステップでは、Zilliz Cloud がEKSクラスターを代理で管理できるようにAWS上にIAMロールを作成し、ロールのARNをZilliz Cloud コンソールに戻します。

  1. 管理者権限を持つユーザーとしてAWSコンソールにログインし、IAMダッシュボードに移動します。

  2. アカウント情報を展開し、AWSアカウントIDの先頭にあるコピーボタンをクリックします。

  3. 左側のサイドバーで ロール タブをクリックし、次に ロールを作成 をクリックします。

  4. 信頼されたエンティティの選択 で、カスタム信頼ポリシー タイルをクリックします。共通信頼ポリシー で、以下の信頼JSONを カスタム信頼ポリシー セクションのエディタに貼り付け、{accountId} を自分の AWSアカウントID に置き換えます。

    {
    "Version" : "2012-10-17",
    "Statement" : [
    {
    "Effect" : "Allow",
    "Principal" : {
    "Service" : "eks-nodegroup.amazonaws.com"
    },
    "Action" : "sts:AssumeRole"
    },
    {
    "Sid" : "EKSClusterAssumeRole",
    "Effect" : "Allow",
    "Principal" : {
    "Service" : "eks.amazonaws.com"
    },
    "Action" : "sts:AssumeRole"
    },
    {
    "Sid" : "EKSNodeAssumeRole",
    "Effect" : "Allow",
    "Principal" : {
    "Service" : "ec2.amazonaws.com"
    },
    "Action" : "sts:AssumeRole"
    },
    {
    "Effect" : "Allow",
    "Principal" : {
    "Federated" : "arn:aws:iam::{accountId}:oidc-provider/eks_oidc_url"
    },
    "Action" : "sts:AssumeRoleWithWebIdentity",
    "Condition" : {
    "StringEquals" : {
    "eks_oidc_url:aud" : "sts.amazonaws.com",
    "eks_oidc_url:sub" : "system:serviceaccount:kube-system:aws-load-balancer-controller"
    }
    }
    },
    {
    "Effect" : "Allow",
    "Principal" : {
    "Federated" : "arn:aws:iam::{accountId}:oidc-provider/eks_oidc_url"
    },
    "Action" : "sts:AssumeRoleWithWebIdentity",
    "Condition" : {
    "StringEquals" : {
    "eks_oidc_url:sub" : "system:serviceaccount:kube-system:ebs-csi-controller-sa",
    "eks_oidc_url:aud" : "sts.amazonaws.com"
    }
    }
    },
    {
    "Effect" : "Allow",
    "Principal" : {
    "Federated" : "arn:aws:iam::{accountId}:oidc-provider/eks_oidc_url"
    },
    "Action" : "sts:AssumeRoleWithWebIdentity",
    "Condition" : {
    "StringEquals" : {
    "eks_oidc_url:sub" : "system:serviceaccount:kube-system:cluster-autoscaler",
    "eks_oidc_url:aud" : "sts.amazonaws.com"
    }
    }
    }
    ]
    }
  5. 次へ をクリックし、権限の追加をスキップします。

  6. 名前、レビュー、作成 ステップで、ロールに名前を付け、信頼されたエンティティを確認し、ロールを作成 をクリックします。

  7. ロールが作成されたら、緑色のバーの ロールを表示 をクリックしてロールの詳細に移動します。

  8. ロールの ARN の前にあるコピーアイコンをクリックします。

  9. Zilliz Cloud コンソールに戻り、EKS設定IAMロールARN にロールARNを貼り付けます。

ステップ2: 権限を追加

このステップでは、EKSロールに複数の権限を追加します。ロールの詳細ページで、権限 タブをクリックします。権限ポリシー セクションで、権限を追加 をクリックします。このステップでは、ポリシーを添付 を選択し、次に インラインポリシーを作成 を選択して、異なるソースから複数のポリシーを追加する必要があります。

AWS管理ポリシーを添付

以下の表は、添付ポリシーとして追加する権限を示しています。表の 権限 列の項目をクリックして、必要な権限を表示します。

権限

管理元

説明

AmazonEC2ContainerRegistryReadOnly

AWS

Amazon EC2 Container Registry リポジトリへの読み取り専用アクセスを提供します。

AmazonEKS_CNI_Policy

AWS

Amazon VPC CNIプラグイン (amazon-vpc-cni-k8s) がEKSワーカーノードのIPアドレス構成を変更するために必要な権限を提供します。

AmazonEKSWorkerNodePolicy

AWS

Amazon EKS ワーカーノードがAmazon EKS クラスターに接続できるようにします。

AmazonEKSClusterPolicy

AWS

Kubernetes がリソースを代理で管理するために必要な権限を提供します。

AmazonEKSVPCResourceController

AWS

VPCリソースコントローラーがワーカーノードのENIおよびIPを管理できるようにします。

ポリシーを添付 を選択した後、開いたページの その他の権限ポリシー セクションで、上記の各AWS管理ポリシー名を検索ボックスに入力し、その前にあるラジオボックスを選択します。必要なすべてのポリシーを選択したら、権限を追加 をクリックします。

これらのポリシーが 権限 ポリシー一覧に表示されていることが確認できます。

📘Notes

EKSクラスターの作成時に、サービスリンクロール もクラスターとともに自動的に作成され、それらは AmazonEKSServiceRolePolicyAWSServiceRoleForAmazonEKSNodegroup です。これら2つのロールは、Amazon EKS が代理で他のAWSサービスを呼び出すために必要です。

インラインポリシーを作成

以下の表は、カスタマーインラインポリシーとして追加する必要があるポリシーを示しています。表の 権限 列の項目をクリックして、必要な権限を表示します。

権限

管理元

説明

AWSロードバランサーコントローラー

Kubernetes SIGs

AWSロードバランサーコントローラーは、Kubernetesクラスター用のElastic Load Balancerを管理するためのコントローラーです。

AWSロードバランサーコントローラーリポジトリの詳細については、README ファイルを参照してください。

Amazon EBS CSIドライバー

Kubernetes SIGs

Amazon Elastic Block Store Container Storage Interface (CSI) ドライバーは、コンテナオーケストレーターがAmazon EBSボリュームのライフサイクルを管理するために使用されるCSIインターフェースを提供します。

Amazon EBS CSIドライバーの詳細については、README ファイルを参照してください。

クラスターオートスケーラー

Kubernetes SIGs

クラスターオートスケーラーは、すべてのポッドが実行できる場所があり、不要なノードがないようにKubernetesクラスターのサイズを自動的に調整するコンポーネントです。

AWS上でのクラスターオートスケーラーの詳細については、README ファイルを参照してください。

インラインポリシーを作成 を選択した後、権限の指定 ページで、ポリシーエディター セクションの JSON をクリックしてポリシーエディターを開きます。次に、上記の権限のいずれかをコピーし、ポリシーエディターに貼り付けます。

次へ をクリックし、ポリシーの詳細ポリシー名 を設定します。すべてのリストされたインラインポリシーを追加したら、ポリシーを作成 をクリックします。これらのポリシーが 権限 ポリシー一覧に表示されていることが確認できます。