S3バケットとIAMロールの作成
このページでは、Bring-Your-Own-Cloud (BYOC) プロジェクトのルートストレージを作成および構成するための手順と適切な権限について説明します。
Zilliz BYOC は現在、一般提供されています。アクセスおよび実装の詳細については、Zilliz Cloud 営業担当にお問い合わせください。
S3バケットのベストプラクティス
プロジェクト展開中に指定するバケットは、プロジェクトで作成されたクラスターのルートストレージとして使用されます。S3バケットを作成する前に、以下のベストプラクティスを確認してください:
-
S3バケットは、プロジェクト展開と同じAWSリージョンに存在する必要があります。
-
プロジェクト内のすべてのクラスターは、プロジェクト展開中に作成されたS3バケットを共有します。Zilliz Cloud は、プロジェクト専用のS3バケットを使用し、他のサービスやリソースと共有しないことを推奨します。
手順
AWSコンソールを使用してバケットとロールを作成できます。別の方法として、Zilliz Cloud が提供するTerraformスクリプトを使用して、AWS 上の Zilliz Cloud プロジェクト用インフラストラクチャをブートストラップできます。詳細については、Terraform プロバイダー を参照してください。
ステップ1: S3バケットを作成
このステップでは、BYOCプロジェクト展開用にAWS上にS3バケットを作成します。既存のS3バケットを使用することを選択した場合は、バケットがBYOCプロジェクトと同じリージョンにあることを確認してください。作成後に、Zilliz Cloud コンソールの ストレージ設定 にバケット名を入力します。
-
管理者権限を持つユーザーとしてAWSコンソールにログインし、S3サービスに移動します。
-
汎用バケット タブで、バケットを作成 をクリックします。
-
バケット名 にバケット名を入力し、他の設定はデフォルト値を維持します。
-
バケットを作成 をクリックします。
-
Zilliz Cloud コンソール に戻り、ストレージ設定 の バケット にバケット名を貼り付けます。
ステップ2: S3バケットにアクセスするためのIAMロールを作成
このステップでは、Zilliz Cloud が先のステップで作成したS3バケットに代理でアクセスするためにAWS上にIAMロールを作成します。
-
管理者権限を持つユーザーとして AWSコンソール にログインし、IAM ダッシュボードに移動します。
-
アカウント情報を展開し、AWSアカウントID の前にあるコピーボタンをクリックします。
-
左側のサイドバーで ロール タブをクリックし、次に ロールを作成 をクリックします。
-
信頼されたエンティティの選択 で、カスタム信頼ポリシー タイルをクリックします。共通信頼ポリシー で、以下の信頼JSONを カスタム信頼ポリシー セクションのエディタに貼り付け、
{accountId}を自分の 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"
}
}
}
]
} -
次へ をクリックし、権限の追加をスキップします。
-
名前、レビュー、作成 ステップで、ロールに名前を付け、信頼されたエンティティを確認し、ロールを作成 をクリックします。
-
ロールが作成されたら、緑色のバーの ロールを表示 をクリックしてロールの詳細に移動します。
-
ロールの ARN の前にあるコピーアイコンをクリックします。
-
Zilliz Cloud コンソールに戻り、ストレージ設定 の IAMロール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}/*"
]
}
]
} -
レビューと作成 で、ポリシー名を入力し、権限を確認し、ポリシーを作成 をクリックします。