EKS IAMロールの作成
このページでは、Zilliz Cloud が Zilliz Cloud プロジェクト用にEKSクラスターを展開するためのIAMロールの作成および構成方法について説明します。
Zilliz BYOC は現在、一般提供されています。アクセスおよび実装の詳細については、Zilliz Cloud 営業担当にお問い合わせください。
手順
AWSコンソールを使用してEKSロールを作成できます。別の方法として、Zilliz Cloud が提供するTerraformスクリプトを使用して、AWS 上の Zilliz Cloud プロジェクト用インフラストラクチャをブートストラップできます。詳細については、Terraform プロバイダー を参照してください。
ステップ1: IAMロールを作成
このステップでは、Zilliz Cloud がEKSクラスターを代理で管理できるようにAWS上にIAMロールを作成し、ロールのARNをZilliz Cloud コンソールに戻します。
-
管理者権限を持つユーザーとしてAWSコンソールにログインし、IAMダッシュボードに移動します。
-
アカウント情報を展開し、AWSアカウントIDの先頭にあるコピーボタンをクリックします。
-
左側のサイドバーで ロール タブをクリックし、次に ロールを作成 をクリックします。
-
信頼されたエンティティの選択 で、カスタム信頼ポリシー タイルをクリックします。共通信頼ポリシー で、以下の信頼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"
}
}
}
]
} -
次へ をクリックし、権限の追加をスキップします。
-
名前、レビュー、作成 ステップで、ロールに名前を付け、信頼されたエンティティを確認し、ロールを作成 をクリックします。
-
ロールが作成されたら、緑色のバーの ロールを表示 をクリックしてロールの詳細に移動します。
-
ロールの ARN の前にあるコピーアイコンをクリックします。
-
Zilliz Cloud コンソールに戻り、EKS設定 の IAMロールARN にロールARNを貼り付けます。
ステップ2: 権限を追加
このステップでは、EKSロールに複数の権限を追加します。ロールの詳細ページで、権限 タブをクリックします。権限ポリシー セクションで、権限を追加 をクリックします。このステップでは、ポリシーを添付 を選択し、次に インラインポリシーを作成 を選択して、異なるソースから複数のポリシーを追加する必要があります。
AWS管理ポリシーを添付
以下の表は、添付ポリシーとして追加する権限を示しています。表の 権限 列の項目をクリックして、必要な権限を表示します。
権限 | 管理元 | 説明 |
|---|---|---|
AWS | Amazon EC2 Container Registry リポジトリへの読み取り専用アクセスを提供します。 | |
AWS | Amazon VPC CNIプラグイン (amazon-vpc-cni-k8s) がEKSワーカーノードのIPアドレス構成を変更するために必要な権限を提供します。 | |
AWS | Amazon EKS ワーカーノードがAmazon EKS クラスターに接続できるようにします。 | |
AWS | Kubernetes がリソースを代理で管理するために必要な権限を提供します。 | |
AWS | VPCリソースコントローラーがワーカーノードのENIおよびIPを管理できるようにします。 |
ポリシーを添付 を選択した後、開いたページの その他の権限ポリシー セクションで、上記の各AWS管理ポリシー名を検索ボックスに入力し、その前にあるラジオボックスを選択します。必要なすべてのポリシーを選択したら、権限を追加 をクリックします。
これらのポリシーが 権限 ポリシー一覧に表示されていることが確認できます。
EKSクラスターの作成時に、サービスリンクロール もクラスターとともに自動的に作成され、それらは AmazonEKSServiceRolePolicy と AWSServiceRoleForAmazonEKSNodegroup です。これら2つのロールは、Amazon EKS が代理で他のAWSサービスを呼び出すために必要です。
インラインポリシーを作成
以下の表は、カスタマーインラインポリシーとして追加する必要があるポリシーを示しています。表の 権限 列の項目をクリックして、必要な権限を表示します。
権限 | 管理元 | 説明 |
|---|---|---|
Kubernetes SIGs | AWSロードバランサーコントローラーは、Kubernetesクラスター用のElastic Load Balancerを管理するためのコントローラーです。 AWSロードバランサーコントローラーリポジトリの詳細については、README ファイルを参照してください。 | |
Kubernetes SIGs | Amazon Elastic Block Store Container Storage Interface (CSI) ドライバーは、コンテナオーケストレーターがAmazon EBSボリュームのライフサイクルを管理するために使用されるCSIインターフェースを提供します。 Amazon EBS CSIドライバーの詳細については、README ファイルを参照してください。 | |
Kubernetes SIGs | クラスターオートスケーラーは、すべてのポッドが実行できる場所があり、不要なノードがないようにKubernetesクラスターのサイズを自動的に調整するコンポーネントです。 AWS上でのクラスターオートスケーラーの詳細については、README ファイルを参照してください。 |
インラインポリシーを作成 を選択した後、権限の指定 ページで、ポリシーエディター セクションの JSON をクリックしてポリシーエディターを開きます。次に、上記の権限のいずれかをコピーし、ポリシーエディターに貼り付けます。
次へ をクリックし、ポリシーの詳細 で ポリシー名 を設定します。すべてのリストされたインラインポリシーを追加したら、ポリシーを作成 をクリックします。これらのポリシーが 権限 ポリシー一覧に表示されていることが確認できます。