メインコンテンツまでスキップ

S3 バケットと IAM ロールの作成

このページでは、適切な権限を持つ Bring-Your-Own-Cloud (BYOC) プロジェクトのルートストレージを作成および設定する手順について説明します。

📘注記

Zilliz BYOC は現在 General Availability で利用可能です。アクセス方法および実装の詳細については、Zilliz Cloud の営業担当までお問い合わせください。

S3 バケットのベストプラクティス

プロジェクトのデプロイ時に指定するバケットは、そのプロジェクト内で作成されるクラスターのルートストレージとして使用されます。S3 バケットを作成する前に、以下のベストプラクティスを確認してください。

  • S3 バケットは、プロジェクトのデプロイと同じ AWS リージョン内に存在する必要があります。

  • プロジェクト内のすべてのクラスターは、プロジェクトのデプロイ時に作成された S3 バケットを共有します。Zilliz Cloud では、そのプロジェクト専用の S3 バケットを使用し、他のサービスやリソースと共有しないことを推奨します。

手順

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

ステップ 1: S3 バケットを作成する

このステップでは、BYOC プロジェクトのデプロイ用に AWS 上で S3 バケットを作成します。既存の S3 バケットを使用したい場合は、そのバケットが BYOC プロジェクトと同じリージョン内にあることを確認してください。作成後、Zilliz Cloud コンソールの Storage settings にある Bucket にバケット名を入力します。

1

管理者権限を持つユーザーとして AWS コンソールにログインし、S3 サービスに移動します。

2

General purpose bucket タブで、Create bucket をクリックします。

3

Bucket name にバケット名を入力し、他の設定はデフォルト値のままにします。

4

Create bucket をクリックします。

5

Zilliz Cloud console に戻り、Storage settingsBucket にバケット名を貼り付けます。

ステップ 2: S3 バケットにアクセスするための IAM ロールを作成する

このステップでは、前のステップで作成した S3 バケットに Zilliz Cloud がユーザーに代わってアクセスできるようにするため、AWS 上で IAM ロールを作成します。

1

管理者権限を持つユーザーとして AWS Console にログインし、IAM ダッシュボードに移動します。

2

アカウント情報を展開し、AWS Account ID の前にあるコピーボタンをクリックします。

3

左側のサイドバーで Roles タブをクリックし、次に Create Role をクリックします。

4

Select trusted entity で、Custom trust policy タイルをクリックします。Common trust policy で、以下の trust JSON を Custom trust policy セクションのエディターに貼り付け、{accountId} を自身の AWS Account ID に置き換えます。

json
{
"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"
}
}
}
]
}
5

Next をクリックし、権限の追加はスキップします。

6

Name, review, and create ステップで、ロールに名前を付け、信頼されたエンティティを確認して、Create role をクリックします。

7

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

8

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

9

Zilliz Cloud コンソールに戻り、Storage settingsIAM Role ARN にロール ARN を貼り付けます。

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

このステップは AWS コンソール上でのみ実施します。このステップでは、ステップ 2 で作成したロールに対して inline policy を作成します。

1

作成したロールの詳細ページに移動します。Permissions policies セクションで Add permissions をクリックし、Create inline policy を選択します。

2

Specify permissions ページで、Policy editor セクションの JSON をクリックしてポリシーエディターを開きます。次に、以下の権限をコピーしてポリシーエディターに貼り付けます。

{bucketName}ステップ 1 で作成したバケット名に置き換え、修正した policy JSON をコピーして AWS の Policy editor に貼り付ける必要があります。

json
{
"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}/*"
]
}
]
}
3

Review and create でポリシー名を入力し、権限を確認して、Create policy をクリックします。

Ctrl I