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つのサービスリンクロールが自動的に作成され、AmazonEKSServiceRolePolicyとAWSServiceRoleForAmazonEKSNodegroupです。これら2つのロールは、Amazon EKSがあなたの代わりに他のAWSサービスを呼び出すために必要です。
-
管理者権限を持つユーザーとしてAWSコンソールにログインし、IAMダッシュボードに移動してください。
-
アカウント情報を展開し、AWSアカウントIDの先頭にあるコピーボタンをクリックしてください。
-
左サイドバーの[役割]タブをクリックし、[役割を作成]をクリックします。
-
[信頼できるエンティティの選択]で、[カスタム信頼ポリシー]タイルをクリックします。[共通信頼ポリシー]で、下の信頼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"
}
}
}
]
} -
「次へ」をクリックして、アクセス権の追加をスキップします。
-
「名前、レビュー、および作成」ステップで、役割に名前を付け、信頼されたエンティティを確認し、「役割を作成」をクリックします。
📘ノートロールに名前を付けるときは、プレフィックス
zilliz-byoc
を使用します。 -
ロールが作成されたら、緑色のバーの[View role]をクリックしてロールの詳細に移動します。
-
ロールのARNの前にあるコピーアイコンをクリックします。
-
Zilliz Cloudコンソールに戻り、IAM Role ARNのEKS設定にARNロールを貼り付けます。
ステップ2:権限を追加する
このステップでは、EKSロールに複数の権限を追加します。ロールの詳細ページで、「権限」タブをクリックします。「権限ポリシー」セクションで、「権限追加」をクリックします。このステップでは、「ポリシー添付」を選択し、「インラインポリシー作成」を選択して、異なるソースから複数のポリシーを追加する必要があります。
AWSが管理するポリシーを添付
次の表に、添付ポリシーとして追加する権限を示します。表の[権限]列の項目をクリックして、必要な権限を表示します。
アクセス許可 | 管理する | 説明する |
---|---|---|
AWS | Amazon EC 2 Container Registryリポジトリへの読み取り専用アクセスを提供します。 | |
AWS | Amazon VPC CNIプラグイン(amazon-vpc-cni-k 8 s)に、EKSワーカーノードのIPアドレス設定を変更するために必要な権限を提供します。 | |
AWS | Amazon EKSワーカーノードがAmazon EKSクラスターに接続できるようにします。 | |
AWS | あなたの代わりにリソースを管理するために必要な権限をKubernetesに提供します。 | |
AWS | VPCリソースコントローラーがワーカーノードのENIとIPを管理できるようにします。 |
「ポリシーを添付」を選択した後、開いたページの「その他の権限ポリシー」セクションで、上記にリストされた各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 | Cluster AutoScalerは、Kubernetes Clusterの体格を自動的に調整するコンポーネントで、すべてのポッドが実行可能になり、不要なノードがなくなるように置く。 AWS上のCluster AutoScalerの詳細については、READMEファイルを参照してください。 |
「Create inline policy」を選択した後、「Specify permissions」ページで、「JSON」をクリックしてポリシーエディタを開きます。次に、上記の権限のいずれかをコピーしてポリシーエディタに貼り付けます。
[次へ]をクリックし、[ポリシーの詳細]でポリシー名を設定します。
次の図に示すように、ポリシーの命名にはプレフィックスzilliz-byoc
を使用します。
リストされたすべてのインラインポリシーを追加したら、[ポリシーを作成]をクリックします。これらのポリシーが[権限ポリシー]リストに表示されます。