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

EKS IAMロールの作成

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

📘ノート

Zilliz BYOCは現在一般提供中です。アクセスと実装の詳細については、Zilliz Cloudサポートにお問い合わせください。

手続き

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

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

このステップでは、AWS上でZilliz CloudのIAMロールを作成し、代わりにEKSクラスターを管理し、ロールのARNをZilliz Cloudコンソールに貼り付けます。

📘ノート

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

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

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

    EMi6b2DQJonwOZx8yksclm2hntc

  3. 左サイドバーの[役割]タブをクリックし、[役割を作成]をクリックします。

    IESTbOXD4o9lfJx34fCcUkF9nSd

  4. [信頼できるエンティティの選択]で、[カスタム信頼ポリシー]タイルをクリックします。[共通信頼ポリシー]で、下の信頼JSONを[カスタム信頼ポリシー]セクションのエディタに貼り付け、{account tId}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"
    }
    }
    }
    ]
    }

    IJh1b5jTSos08MxhMMKcXcKAnRg

  5. へ」をクリックして、アクセス権の追加をスキップします。

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

    📘ノート

    ロールに名前を付けるときは、プレフィックスzilliz-byocを使用します。

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

    RsJhbMJnMogl3AxcBc7cVamNngc

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

    L7rSbBI7donnqSxNZ03cjoEEn9f

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

    HoLTbTV52ogMGsxl0WfcFEHmnSc

ステップ2:権限を追加する

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

PypqbYKgeolL9FxEVsxcDnPJnBf

AWSが管理するポリシーを添付

次の表に、添付ポリシーとして追加する権限を示します。表の[権限]列の項目をクリックして、必要な権限を表示します。

アクセス許可

管理する

説明する

AmazonEC2ContainerRegistryReadOnly

AWS

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

AmazonEKS_CNI_ポリシー

AWS

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

AmazonEKSWorkerNodePolicy

AWS

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

AmazonEKSClusterPolicy

AWS

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

AmazonEKSVPCResourceController

AWS

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

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

MK1AblIjSo5hxaxtfMDcN55AnJc

これらのポリシーは、[アクセス許可ポリシー]リストに表示されます。

T29CbqmABoF5AmxYZ4xcY1RJn9e

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

次の表に、顧客のインラインポリシーとして追加する必要があるポリシーを示します。テーブルの[権限]列の項目をクリックして、必要な権限を表示します。

アクセス許可

管理する

説明する

AWS Load Balancer Controller

KubernetesのSIGs

AWSロードバランサーコントローラーは、KubernetesクラスターのElastic Load Balancerを管理するためのコントローラーです。 AWSロードバランサーコントローラーリポジトリの詳細については、READMEファイルを参照してください。

Amazon EBS CSI driver

KubernetesのSIGs

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

Cluster AutoScaler

KubernetesのSIGs

Cluster AutoScalerは、Kubernetes Clusterの体格を自動的に調整するコンポーネントで、すべてのポッドが実行可能になり、不要なノードがなくなるように置く。 AWS上のCluster AutoScalerの詳細については、READMEファイルを参照してください。

Create inline policy」を選択した後、「Specify permissions」ページで、「JSON」をクリックしてポリシーエディタを開きます。次に、上記の権限のいずれかをコピーしてポリシーエディタに貼り付けます。

ZmF0bkhWOoWYZMxoZHccP1iMnah

[へ]をクリックし、[ポリシーの詳細]でポリシー名設定します

📘ノート

次の図に示すように、ポリシーの命名にはプレフィックスzilliz-byocを使用します。

DaaUbPxOPowcAgxZprNceEBMndh

リストされたすべてのインラインポリシーを追加したら、[ポリシーを作成]をクリックします。これらのポリシーが[権限ポリシー]リストに表示されます。

Q0TkbkN04oqWYIx3777cObDIndd