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 Provider を参照してください。
ステップ1: S3バケットの作成
このステップでは、BYOCプロジェクトのデプロイ用にAWS上にS3バケットを作成します。既存のS3バケットを使用する場合は、そのバケットがBYOCプロジェクトと同じリージョンにあることを確認してください。作成後、Zilliz Cloudコンソールのストレージ設定にバケット名を入力します。
管理者権限を持つユーザーとしてAWSコンソールにログインし、S3サービスに移動します。
汎用バケットタブで、バケットを作成をクリックします。
バケット名に、バケットの名前を入力し、その他の設定はデフォルト値のままにします。
バケットを作成をクリックします。
Zilliz Cloud コンソールに戻り、ストレージ設定のバケットにバケット名を貼り付けます。
ステップ2: S3バケットへのアクセス用IAMロールの作成
このステップでは、前のステップで作成したS3バケットにZilliz Cloudが代わりにアクセスするためのIAMロールをAWS上に作成します。
管理者権限を持つユーザーとして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}/*"
]
}
]
}