クロスアカウントIAMロールの作成
このページでは、プロジェクトをブートストラップするためにZilliz Cloudのクロスアカウントロールを作成および設定する方法について説明します。このロールにより、Zilliz Cloudはあなたの代わりにVPCリソースを管理するための制限付き権限を与えられます。
Zilliz BYOCは現在一般提供中です。アクセスと実装の詳細については、Zilliz Cloudサポートにお問い合わせください。
手続き
AWSコンソールを使用してブートストラップロールを作成できます。代わりに、Zilliz Cloudが提供するTerraformスクリプトを使用して、Zilliz CloudプロジェクトのインフラストラクチャをAWS上でブートストラップすることもできます。詳細については、「Bootstrapインフラストラクチャ(Terraform)」を参照してください。
ステップ1:クロスアカウントIAMロールを作成する
このステップでは、Zilliz CloudとVPC間の通信のためのクロスアカウントIAMロールを作成します。
-
Zilliz Cloudコンソールで、セットアップガイドに表示されている外部IDをコピーします。
-
管理者権限を持つユーザーとしてAWSコンソールにログインし、IAMダッシュボードに移動します。
-
左サイドバーの[役割]タブをクリックし、[役割を作成]をクリックします。
-
[信頼できるエンティティの選択]で、AWSアカウントタイルをクリックします。
-
[An AWS account]で、[Another AWS account]チェックボックスをオンにします。
-
[アカウントID]に、Zilliz CloudアカウントID 9655 7 0 9670 8 4を入力し
ま
す。これは、Zilliz Cloudコンソールからコピーした外部IDではありません。
-
[**外部IDが必要]**チェックボックスをオンにします。
-
[外部ID]に、Zilliz CloudコンソールからコピーしたIDを入力します。
-
「次へ」をクリックして、アクセス権の追加をスキップします。
-
「名前、レビュー、および作成」ステップで、役割に名前を付け、信頼されたエンティティを確認し、「役割を作成」をクリックします。
📘ノートロールに名前を付けるときは、プレフィックス
zilliz-byoc
を使用します。 -
ロールが作成されたら、緑色のバーの[View role]をクリックしてロールの詳細に移動します。
-
ロールのARNの前にあるコピーアイコンをクリックします。
-
Zilliz Cloudコンソールに戻り、IAM Role ARNのEKS設定にARNロールを貼り付けます。
ステップ2:権限を追加する
このステップはAWSコンソール上でのみ行われます。このステップでは、上記で作成したロールのインラインポリシーを作成します。
-
作成したロールの詳細ページに移動します。[権限ポリシー]セクションで、[権限を追加]をクリックし、[インラインポリシーを作成]を選択します。
-
「Specify permissions」ページで、「JSON」をクリックしてポリシーエディタを開きます。その後、以下のパーミッションをコピーしてポリシーエディタに貼り付け、
{bucketName}
を「Create S3 Bucket and Role」で作成したバケットに置き換えます。{
"Version" : "2012-10-17",
"Statement" : [
{
"Sid" : "CreateOpenIDConnectProvider",
"Effect" : "Allow",
"Action" : [
"iam:CreateOpenIDConnectProvider",
"iam:TagOpenIDConnectProvider"
],
"Resource" : [
"arn:aws:iam::*:oidc-provider/*"
],
"Condition" : {
"StringEquals" : {
"aws:RequestTag/Vendor" : "zilliz-byoc"
}
}
},
{
"Sid" : "DeleteOpenIDConnectProvider",
"Effect" : "Allow",
"Action" : [
"iam:GetOpenIDConnectProvider",
"iam:DeleteOpenIDConnectProvider"
],
"Resource" : [
"arn:aws:iam::*:oidc-provider/*"
]
},
{
"Sid" : "IAMReadEKSRole",
"Effect" : "Allow",
"Action" : [
"iam:GetRole",
"iam:ListAttachedRolePolicies"
],
"Resource" : [
"arn:aws:iam::*:role/zilliz-byoc*",
"arn:aws:iam::*:role/aws-service-role/eks-nodegroup.amazonaws.com/AWSServiceRoleForAmazonEKSNodegroup"
]
},
{
"Sid" : "IAMPassRoleToEKS",
"Effect" : "Allow",
"Action" : [
"iam:PassRole"
],
"Resource" : [
"arn:*:iam::*:role/zilliz-byoc*"
],
"Condition" : {
"StringEquals" : {
"iam:PassedToService" : "eks.amazonaws.com"
}
}
},
{
"Sid" : "IAMUpdateTrustPolicyForEKSRole",
"Effect" : "Allow",
"Action" : [
"iam:UpdateAssumeRolePolicy"
],
"Resource" : [
"arn:*:iam::*:role/zilliz-byoc*"
]
},
{
"Sid" : "EC2Create",
"Effect" : "Allow",
"Action" : [
"ec2:CreateLaunchTemplate",
"ec2:RunInstances"
],
"Resource" : [
"arn:aws:ec2:*:*:launch-template/*",
"arn:aws:ec2:*:*:volume/*",
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:network-interface/*"
],
"Condition" : {
"StringEquals" : {
"aws:RequestTag/Vendor" : "zilliz-byoc"
}
}
},
{
"Sid" : "EC2Update",
"Effect" : "Allow",
"Action" : [
"ec2:DeleteLaunchTemplate",
"ec2:CreateLaunchTemplateVersion",
"ec2:RunInstances"
],
"Resource" : [
"arn:aws:ec2:*:*:launch-template/*",
"arn:aws:ec2:*:*:image/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:subnet/*"
],
"Condition" : {
"StringEquals" : {
"aws:ResourceTag/Vendor" : "zilliz-byoc"
}
}
},
{
"Sid" : "EC2RunInstanceOnImage",
"Effect" : "Allow",
"Action" : [
"ec2:RunInstances"
],
"Resource" : [
"arn:aws:ec2:*:*:image/*"
]
},
{
"Sid" : "EC2Tag",
"Effect" : "Allow",
"Action" : [
"ec2:CreateTags"
],
"Resource" : [
"arn:aws:ec2:*:*:launch-template/*",
"arn:aws:ec2:*:*:volume/*",
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:image/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:subnet/*"
],
"Condition" : {
"StringEquals" : {
"aws:ResourceTag/Vendor" : "zilliz-byoc"
}
}
},
{
"Sid" : "EC2TagWithRequestTag",
"Effect" : "Allow",
"Action" : [
"ec2:CreateTags"
],
"Resource" : [
"arn:aws:ec2:*:*:launch-template/*",
"arn:aws:ec2:*:*:volume/*",
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:image/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:subnet/*"
],
"Condition" : {
"StringEquals" : {
"aws:RequestTag/Vendor" : "zilliz-byoc"
}
}
},
{
"Sid" : "EC2Read",
"Effect" : "Allow",
"Action" : [
"ec2:DescribeAccountAttributes",
"ec2:DescribeInstanceTypes",
"ec2:DescribeLaunchTemplateVersions",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeSubnets",
"ec2:DescribeVpcs"
],
"Resource" : [
"*"
]
},
{
"Sid" : "EKSCreate",
"Effect" : "Allow",
"Action" : [
"eks:CreateCluster",
"eks:CreateNodegroup",
"eks:CreateAddon",
"eks:CreateAccessEntry",
"eks:CreatePodIdentityAssociation"
],
"Resource" : [
"arn:aws:eks:*:*:cluster/zilliz-byoc-*",
"arn:aws:eks:*:*:addon/zilliz-byoc-*/*/*",
"arn:aws:eks:*:*:nodegroup/zilliz-byoc-*/zilliz*/*",
"arn:aws:eks:*:*:podidentityassociation/zilliz-byoc-*/*",
"arn:aws:eks::aws:access-entry/zilliz-byoc-*/*/*/*/*",
"arn:aws:eks::aws:access-policy/zilliz-byoc-*/*"
],
"Condition" : {
"StringEquals" : {
"aws:RequestTag/Vendor" : "zilliz-byoc"
}
}
},
{
"Sid" : "EKSUpdate",
"Effect" : "Allow",
"Action" : [
"eks:AssociateAccessPolicy",
"eks:UpdateAccessEntry",
"eks:UpdateAddon",
"eks:UpdateClusterConfig",
"eks:UpdateClusterVersion",
"eks:UpdateNodegroupConfig",
"eks:UpdateNodegroupVersion",
"eks:UpdatePodIdentityAssociation"
],
"Resource" : [
"arn:aws:eks:*:*:cluster/zilliz-byoc-*",
"arn:aws:eks:*:*:addon/zilliz-byoc-*/*/*",
"arn:aws:eks:*:*:nodegroup/zilliz-byoc-*/zilliz*/*",
"arn:aws:eks:*:*:podidentityassociation/zilliz-byoc-*/*",
"arn:aws:eks::aws:access-entry/zilliz-byoc-*/*/*/*/*",
"arn:aws:eks::aws:access-policy/zilliz-byoc-*/*"
],
"Condition" : {
"StringEquals" : {
"aws:ResourceTag/Vendor" : "zilliz-byoc"
}
}
},
{
"Sid" : "EKSTag",
"Effect" : "Allow",
"Action" : [
"eks:TagResource"
],
"Resource" : [
"arn:aws:eks:*:*:cluster/zilliz-byoc-*",
"arn:aws:eks:*:*:addon/zilliz-byoc-*/*/*",
"arn:aws:eks:*:*:nodegroup/zilliz-byoc-*/zilliz*/*",
"arn:aws:eks:*:*:podidentityassociation/zilliz-byoc-*/*",
"arn:aws:eks::aws:access-entry/zilliz-byoc-*/*/*/*/*"
]
},
{
"Sid" : "EKSRead",
"Effect" : "Allow",
"Action" : [
"eks:DescribeCluster",
"eks:DescribeNodegroup",
"eks:DescribeAccessEntry",
"eks:DescribeAddon",
"eks:DescribeAddonConfiguration",
"eks:DescribeAddonVersions",
"eks:DescribePodIdentityAssociation",
"eks:DescribeUpdate",
"eks:ListAccessEntries",
"eks:ListAccessPolicies",
"eks:ListAddons",
"eks:ListNodegroups",
"eks:ListUpdates",
"eks:ListPodIdentityAssociations",
"eks:ListTagsForResource"
],
"Resource" : [
"arn:aws:eks:*:*:cluster/zilliz-byoc-*",
"arn:aws:eks:*:*:addon/zilliz-byoc-*/*/*",
"arn:aws:eks:*:*:nodegroup/zilliz-byoc-*/zilliz*/*",
"arn:aws:eks:*:*:podidentityassociation/zilliz-byoc-*/*",
"arn:aws:eks::aws:access-entry/zilliz-byoc-*/*/*/*/*",
"arn:aws:eks::aws:access-policy/zilliz-byoc-*/*"
]
},
{
"Sid" : "EkSDelete",
"Effect" : "Allow",
"Resource" : [
"arn:aws:eks:*:*:cluster/zilliz-byoc-*",
"arn:aws:eks:*:*:addon/zilliz-byoc-*/*/*",
"arn:aws:eks:*:*:nodegroup/zilliz-byoc-*/zilliz*/*",
"arn:aws:eks:*:*:podidentityassociation/zilliz-byoc-*/*",
"arn:aws:eks::aws:access-entry/zilliz-byoc-*/*/*/*/*",
"arn:aws:eks::aws:access-policy/zilliz-byoc-*/*"
],
"Action" : [
"eks:DeleteAccessEntry",
"eks:DeleteAddon",
"eks:DeleteCluster",
"eks:DeleteFargateProfile",
"eks:DeleteNodegroup",
"eks:DeletePodIdentityAssociation"
]
},
{
"Sid" : "S3CheckBucketLocation",
"Effect" : "Allow",
"Action" : [
"s3:GetBucketLocation"
],
"Resource" : "arn:aws:s3:::{bucketName}"
}
]
} -
[レビューと作成]で、ポリシー名を入力し、権限を確認して、[ポリシーを作成]をクリックします。
📘ノートポリシーに名前を付けるときは、プレフィックス
zilliz-byoc
を使用します。