AWS S3 との統合
Zilliz Cloud を使用すると、Amazon Simple Storage Service (Amazon S3) と統合し、バックアップファイルや監査ログを指定した S3 バケットにエクスポートできます。
この機能は、Enterprise プロジェクト内の Dedicated クラスタでのみ利用可能です。

始める前に
-
Zilliz Cloud を AWS S3 と統合するには、プロジェクトに対する組織オーナーまたはプロジェクト管理者のアクセス権限が必要です。必要な権限をお持ちでない場合は、Zilliz Cloud の組織オーナーにお問い合わせください。
-
AWS Management Console への管理者アクセス権限を持っていること。
ステップ 1: Zilliz Cloud コンソールで統合を開始する
Zilliz Cloud コンソール にログインします。
プロジェクトページで、左側のナビゲーションペインから統合へ移動します。
Amazon S3 セクションで、+ 統合をクリックします。
表示されたダイアログボックスで、基本設定を設定します:
-
統合名: この統合用の一意の名前(例:
integration_0819)。 -
統合の説明 (オプション): この統合の説明(例:
for export backupfile)。
ステップ 2: AWS コンソールで S3 バケットを作成する
Amazon S3 コンソール の右上隅で、Zilliz Cloud クラスタのリージョンと一致する AWS リージョンを選択します。
バケットを作成する AWS リージョンは、Zilliz Cloud クラスタが存在するリージョンと一致している必要があります。Zilliz Cloud がサポートするリージョンについては、クラウドプロバイダーとリージョン を参照してください。
異なるリージョンで実行されているクラスタの場合、バックアップファイルや監査ログを適切にエクスポートできるように、各リージョンごとに個別の統合を作成してください。
左側のナビゲーションペインで、汎用バケットを選択し、バケットの作成をクリックします。
バケット設定を設定します:
-
バケットタイプで、汎用を選択します。
-
バケット名に、バケットの名前を入力します(例:
zilliz-bucket-for-integration-0819)。後のステップで必要になるため、このバケット名を覚えておいてください。 -
その他の設定はデフォルトのままにし、バケットの作成をクリックします。
詳細については、バケットの作成 を参照してください。
バケットが作成されたら、Zilliz Cloud コンソール に戻り、以下の操作を行います:
バケット名フィールドに、刚才作成したバケットの名前を入力します(この例では zilliz-bucket-for-integration-0819)。次に、次へをクリックします。
IAM ポリシーの作成ステップで、JSON ポリシーをコピーします。これは ステップ 3 で必要になります。
ステップ 3: AWS コンソールで IAM ポリシーを作成する
Zilliz Cloud に AWS S3 へのアクセス権限を与えるために、IAM ポリシーを作成します。このポリシーには、Zilliz Cloud と S3 バケット間でのバックアップファイルの転送を容易にするための特定のアクションとリソースを含める必要があります。
簡略化のため、JSON エディターを使用してポリシーを作成します。
IAM コンソール で、ポリシー > ポリシーの作成を選択します。
ポリシーエディターセクションで、JSON オプションを選択します。
Zilliz Cloud から提供された JSON ポリシードキュメントをポリシーエディターにコピーして貼り付けます。次に、次へをクリックします。
以下は JSON ポリシードキュメントのサンプルです。統合用に調整された正確なポリシーについては、Zilliz Cloud コンソールのIAM ポリシーの作成ステップを参照してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::<bucket>",
"arn:aws:s3:::<bucket>/*"
]
}
]
}
ただし、AWS KMS を使用してバケットのサーバー側暗号化を有効にしている場合は、kms:Generateデータキー アクションを許可するために別の IAM ポリシーを追加する必要があります。この場合、以下の JSON ポリシーを使用してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::<bucket>",
"arn:aws:s3:::<bucket>/*"
]
},
{
"Sid": "AllowKMSGenerateDataKey",
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey"
],
"Resource": "arn:aws:kms:<region>:<account_id>:key/<key_id>"
}
]
}
<bucket>は、実際の S3 バケット名に置き換えてください。<region>、<account_id>、および<key_id>は、実際の値に置き換えてください。詳細については、AWS ドキュメントのキー identifiers を参照してください。
Review and create ページで、作成するポリシーのポリシー名(例:zilliz-policy-for-integration-0819)とDescription(任意)を入力し、Permissions defined in this policy を確認してください。後の手順で必要になるため、ポリシー名を控えておいてください。
Create policy を選択して、新しいポリシーを保存します。完了したら、ステップ 4 に進んでください。
ステップ 4: IAM ロールの作成
AWS コンソールで IAM ロールを作成する前に、Zilliz Cloud コンソールで以下の操作を行ってください:
Zilliz Cloud コンソールで、Next をクリックしてCreate IAM ロールステップに進みます。
Select trusted entity で JSON コンテンツをコピーし、IAM コンソール に移動します。
これが完了したら、以下の手順で IAM ロールを作成します:
IAM コンソール で、ロールs > Create role を選択します。
ロールタイプとしてカスタム信頼ポリシーを選択します。
カスタム信頼ポリシーセクションで、ロール用のカスタム信頼ポリシーをコピーして貼り付けます。その後、Nextをクリックします。
以下はサンプルの JSON 信頼ポリシーです。統合用に調整された正確な信頼ポリシーについては、Zilliz Cloud コンソールのCreate IAM ロールステップを参照してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Principal": {
"AWS": "965570967084"
},
"Condition": {
"StringEquals": {
"sts:ExternalId": "my-external-id"
}
}
}
]
}
965570967084 と my-external-id は、Zilliz Cloud コンソールの Create IAM ロール ステップに表示される実際の AWSアカウント ID および external ID に置き換えてください。
Add permissions ステップの 権限ポリシー で、手順 3 (integrate-with-aws-s3) で作成したポリシーを検索して選択し、権限を追加します。次に、Next をクリックします。
名前を付けて確認し、作成 ステップで、ロール名(例:zilliz-integration-role-0819)を入力して設定を確認します。次に、Create role をクリックします。
作成したロールの詳細ページに移動し、そのロールに対応する ARN をコピーします。これは、手順 5 で Zilliz Cloud コンソールで使用します。
手順 5: 統合の検証と追加
Zilliz Cloud コンソール の Create IAM ロール ステップで、前のステップで IAM コンソールからコピーした ARN を貼り付けます。
次に、統合の検証 をクリックして、S3 バケット と IAM ロールの設定を確認します。
ステータスが 成功 に変われば、統合は機能しています。次に、Add をクリックします。
これで、この統合を使用してバックアップファイルをエクスポートしたり、監査ログ を Amazon S3 バケット に転送したりできます。詳細については、バックアップファイルのエクスポート または 監査ログ を参照してください。
統合の管理
統合を追加した後、必要に応じてその詳細を表示したり、統合を削除したりできます。

統合 ID の取得
RESTful API を使用して、Zilliz Cloud と統合された AWS S3 バケット のいずれかにバックアップファイルをエクスポートする必要がある場合は、View Details をクリックして統合の詳細を表示し、その 統合ID をコピーします。
トラブルシューティング
統合プロセス中に問題が発生した場合、一般的なエラーメッセージとその解決策を以下に示します。
バケット リージョンの不一致
説明: 次のエラー例は、S3 バケット のリージョンが Zilliz Cloud クラスターのリージョンと一致しない場合に発生します。
"bucket region not match, want[us-west-1] got[us-west-2]"
ソリューション:
-
S3 バケットが配置されている AWS リージョンが、Zilliz Cloud クラスターのリージョンと一致していることを確認してください。
-
必要に応じて、正しいリージョンに新しいバケットを作成するか、クラスターのリージョンをバケットのリージョンに合わせて調整してください。
バケット not found
説明: このエラーは、指定された S3 バケットが存在しないか、バケット名が正しくない場合に発生します。
check bucket failed: get bucket location: operation error S3: GetBucketLocation, https response error StatusCode: 404, RequestID: ..., HostID: ..., api error NoSuchBucket: The specified bucket does not exis
ソリューション:
-
Zilliz Cloud コンソールと AWS S3 コンソールの両方でバケット名を再確認してください。
-
バケットが存在し、その名前が Zilliz Cloud の設定に正しく入力されていることを確認してください。
Access denied for bucket location
説明: このエラーは、IAM ロールに S3 バケットの場所へアクセスするために必要な権限がない場合に発生します。
check bucket failed: get bucket location: operation error S3: GetBucketLocation, https response error StatusCode: 403 ...
ソリューション:
-
Zilliz Cloud によって使用されているロールにアタッチされた IAM ポリシーを確認します。
-
ポリシーに、
s3:GetObject、s3:PutObject、s3:Listバケットなどの他の必要な権限に加えて、s3:GetバケットLocation権限が含まれていることを確認します。
ロールの引き受け失敗
説明: このエラーは、ロール ARN、外部 ID、またはトラストポリシーが正しくないことが原因で IAM ロールの引き受けに問題が発生した場合に発生します。
try assume role from[zilliz-role] to [arn:aws:iam::041623484421:role/testoss121703] with externalId[zilliz-external-1umVCIK7q96kzDE] failed
ソリューション:
-
Zilliz Cloud コンソールのロール ARN と外部 ID が、IAM 信頼ポリシーの対応する値と一致していることを確認します。
-
IAM ロールの信頼ポリシーで、Zilliz Cloud がロールを引き受けることを許可していることを確認します。