コンピュートエンジン用のサービスアカウントを作成する
CelerData は、クエリ実行中に各クエリのプロファイルを生成し、参照しやすいようにストレージに保存します。このプロファイルは、CelerData クラスターがデプロイされている仮想マシンインスタンスによって生成され、Cloud Storage バケットに保存されます。さらに、Elastic クラスターを作成する場合、データはデフォルトでこのバケットに保存されます。
このサービスアカウントを使用して、デプロイ後に参照されたバケット内のデータをクエリできます。このサービスアカウントを使用して、VM ベースの認証またはインパーソネーションベースの認証のいずれかを使用してアクセスを認証および承認できます。
このトピックでは、Google Cloud でサービスアカウントを作成し、IAM ロールを使用して Cloud Storage バケットに必要な権限を付与する方法を説明します。その後、デプロイメントを作成する前に CelerData Cloud BYOC コンソールの Cloud settings ページから、またはデプロイメント作成のワークフローの一部として、データクレデンシャルにサービスアカウントを参照する必要があります。
Cloud Storage バケットは、デプロイしたい CelerData クラスターと同じ Google Cloud リージョンに存在する必要があります。
(オプション)Cloud Storage バケットを作成する
CelerData クラスターのクエリプロファイルを保存するためのバケットが既にある場合は、このセクションをスキップできます。
-
Google Cloud コンソール にサインインします。
-
左側のナビゲーションメニューを展開し、Cloud Storage > Buckets を選択します。
-
Create をクリックします。
-
Create a bucket ページで、次の手順に従います。
a. バケットのグローバルに一意の名前を入力(例:
bucket-project-test
)し、Continue をクリックします。b. Location type で Region を選択し、クラスターをデプロイしたいリージョンを選択して、Continue をクリックします。
c. Set a default Class を選択し、Standard を選択して、Continue をクリックします。
d. Prevent public access では、Enforce public access prevention on this bucketを選択したままにしておき、Access control で Fine-grained を選択します。
-
Create をクリックします。
サービスアカウントを作成する
次の手順に従ってサービスアカウントを作成します。
- Google Cloud コンソール にサインインします。
- 左側のナビゲーションメニューを展開し、IAM & Admin > Service Accounts を選択します。
- Create service account をクリックします。
- Create service account ページで、Service account name(例:
data-service-account
)、Service account ID(Email アドレスのユーザー名)、および新しいサービスアカウントの説明(オプション)を入力し、Done をクリックします。
サービスアカウントが作成されたら、Service Accounts ページからその Email をコピーし、後でアクセスできる場所に保存します。
バケットに必要な権限を持つ IAM ロールを作成する
必要な権限を持つ IAM ロールを作成し、前のステップで作成したサービスアカウントにそのロールを付与する必要があります。
Cloud Storage バケットに必要な権限は次のとおりです。
iam.serviceAccounts.signBlob
storage.buckets.get
storage.buckets.update
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
storage.objects.update
次の手順に従って IAM ロールを作成します。
-
Google Cloud コンソール にサインインします。
-
左側のナビゲーションメニューを展開し、IAM & Admin > Roles を選択します。
-
Create role をクリックします。
-
Create role ページで、次の手順に従います。
a. 新しいロールのタイトル(例:
DataRoleTest
)、ID、および説明(オプション)を入力します。b. Role launch stage ドロップダウンリストから General Availability を選択 します。
c. Add permissions をクリックします。
d. 表示されるダイアログボックスで、上記の権限を Filter に検索し、選択して Add をクリックします。このステップを繰り返して、上記のすべての権限を追加します。
-
Create をクリックします。
サービスアカウントに IAM ロールを付与する
次の手順に従って、サービスアカウントに IAM ロールを付与します。
-
Google Cloud コンソール にサインインします。
-
左側のナビゲーションメニューを展開し、IAM & Admin > IAM を選択します。
-
IAM ページの Allow タブで、Grant access をクリックします。
-
表示されるダイアログボックスで、次の手順に従います。
a. 先ほどコピーしたサービスアカウントの Email を New principals フィールドに貼り付けます。
b. Role フィールドで、先ほど作成したロール(
DataRoleTest
)を検索して選択します。c. Add IAM condition をクリックします。
d. 新しいダイアログボックスで、条件のタイトルと説明(オプション)を入力します。Condition editor タブで、次の CEL 式を貼り付けます。
resource.name.startsWith("projects/_/buckets/<bucket_name>/") ||
resource.name == "projects/_/buckets/<bucket_name>"注記上記の CEL 式で
<bucket_name>
をクエリプロファイルストレージ用に作成した Cloud Storage バケットの名前に置き換えてください。e. Save をクリックして条件を保存します。
-
Save をクリックしてアクセスを付与します。