S3バケットとIAMロールの作成
このページでは、適切なアクセス許可を持つBring-Your-Own-Cloud(BYOC)プロジェクトのルートストレージを作成および構成する方法について説明します。
Zilliz BYOCは現在一般提供中です。アクセスと実装の詳細については、Zilliz Cloudサポートにお問い合わせください。
S3バケットのベストプラクティス
プロジェクトのデプロイ中に指定したバケットは、プロジェクトで作成されたクラスターのルートストレージとして使用されます。S3バケットを作成する前に、以下のベストプラクティスを確認してください。
-
S3バケットは、プロジェクトデプロイと同じAWSリージョンにある必要があります。
-
プロジェクトのデプロイ中に作成されたS3バケットは、プロジェクト内のすべてのクラスタで共有されます。Zilliz Cloudは、プロジェクト専用のS3バケットを使用し、他のサービスやリソースと共有しないことを推奨しています。
手続き
AWSコンソールを使用してバケットとロールを作成できます。代わりに、Zilliz Cloudが提供するTerraformスクリプトを使用して、Zilliz CloudプロジェクトのインフラストラクチャをAWS上でブートストラップすることもできます。詳細については、「Bootstrapインフラストラクチャ(Terraform)」を参照してください。
ステップ1: S3バケットを作成する
このステップでは、BYOCプロジェクトデプロイメント用にAWS上にS3バケットを作成します。既存のS3バケットを使用する場合は、バケットがBYOCプロジェクトと同じリージョンにあることを確認してください。Zilliz Cloudコンソールのストレージ設定でバケット名を入力する必要があります。
-
管理者権限を持つユーザーとしてAWSコンソールにログインし、S3サービスに移動します。
-
[汎用バケット]タブで、[バケットを作成]をクリックします。
-
[バケット名]にバケットの名前を入力し、他の設定ではデフォルト値を維持します。
-
「バケットを作成」をクリックします。
-
ZillizCloudコンソールに戻り、バケットのストレージ設定にバケット名を貼り付けます。
ステップ2: S3バケットにアクセスするためのIAMロールを作成する
このステップでは、前のステップで作成したS3バケットにアクセスするために、Zilliz CloudのAWS上にIAMロールを作成します。
-
管理者権限を持つユーザーとしてAWSコンソールにログインし、IAMダッシュボードに移動します。
-
アカウント情報を展開し、AWSアカウントIDの前にあるコピーボタンをクリックしてください。
-
左サイドバーの[役割]タブをクリックし、[役割を作成]をクリックします。
-
[信頼できるエンティティの選択]で、[カスタム信頼ポリシー]タイルをクリックします。[共通信頼ポリシー]で、下の信頼JSONを[カスタム信頼ポリシー]セクションのエディタに貼り付け、
{account tId}
をAWSアカウントIDに置き換えます。{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::{accountId}:oidc-provider/eks_oidc_url"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringLike": {
"eks_oidc_url:sub": [
"system:serviceaccount:milvus-*:milvus*",
"system:serviceaccount:loki:loki*",
"system:serviceaccount:index-pool:milvus*"
],
"eks_oidc_url:aud": "sts.amazonaws.com"
}
}
}
]
} -
「次へ」をクリックして、アクセス権の追加をスキップします。
-
「名前、レビュー、および作成」ステップで、役割に名前を付け、信頼されたエンティティを確認し、「役割を作成」をクリックします。
📘ノートロールに名前を付けるときは、プレフィックス
zilliz-byoc
を使用します。 -
ロールが作成されたら、緑色のバーにあるView roleをクリックしてロールの詳細に移動します。
-
ロールのARNの前にあるコピーアイコンをクリックします。
-
Zilliz Cloudコンソールに戻り、[IAM Role ARN]の[ストレージ設定]にARNロールを貼り付けます。
ステップ3:権限を追加する
このステップはAWSコンソール上でのみ行われます。このステップでは、ステップ2で作成したロールのインラインポリシーを作成します。
-
作成したロールの詳細ページに移動します。[権限ポリシー]セクションで、[権限を追加]をクリックし、[インラインポリシーを作成]を選択します。
-
[権限の指定]ページで、[ポリシーエディター]セクションの[JSON]をクリックしてポリシーエディターを開きます。次に、下の権限をコピーしてポリシーエディターに貼り付けます。
{bucketName}
をステップ1で作成したバケットに置き換え、変更したポリシーのJSONをコピーして、AWSのポリシーエディタに貼り付ける必要があります。{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::{bucketName}"
},
{
"Sid": "AllowS3ReadWrite",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::{bucketName}/*"
]
}
]
} -
[レビューと作成]で、ポリシー名を入力し、権限を確認して、[ポリシーを作成]をクリックします。
📘ノートポリシーに名前を付けるときは、プレフィックス
zilliz-byoc
を使用します。