2017-10-08 10 views
0

プロジェクトの下でterraformを管理するサービスユーザを作成し、roles/ownerとしました。このテラフォームユーザーの鍵を作成しました。GCP上のTerraformで権限が拒否されたことを示すpubsubトピックの作成に失敗する

テラフォームのコードに簡単です:ちょうどパブ - サブトピックを作成

resource "google_pubsub_topic" "my_topic" { 
    name = "my_topic" 
    project = "${var.project_id}" 
} 

terraform plan作品が、適用テラフォームは私に与える:

google_pubsub_topic.my_topic:googleapi:エラー403:ユーザーは、このアクションを実行する権限がない、

を禁じが、私もサービスを与えて試してみましたアカウントroles/pubsub.admin私のサービスアカウントにはオーナーロールが関連付けられているため、何が起こっているのか分かりませんが、pubsubトピックは作成できません。

誰でも私にこれを理解してもらえますか?

ありがとうございます。

: gcloudを使用してサービスアカウントを作成しました。

gcloud iam service-accounts create terraform \ 
    --display-name "Terraform admin account" 

gcloud projects add-iam-policy-binding myproject-182220 \ 
--member serviceAccount:[email protected] \ 
--role roles/owner 

gcloud iam service-accounts keys create terraform-admin.json \ 
--iam-account [email protected] 

私のデバッグを続行するために、私は、コンソール/ GUIを使用して新しいサービスアカウントを作成 - > API &サービス - >資格情報 - >資格情報を作成します。 - >サービスアカウントキー - >新規サービスアカウント(所有者の役割を持つ)。この新しいサービスキーjsonファイルを使用すると、問題なくテラフォームコードを実行することができました。

私の混乱は、なぜこれが機能したのですか?gcloudを使用してサービスアカウントを作成して同じ役割を果たしたのはなぜですか? Googleの提供者のための

+0

'gcloud'を実行してこのトピックを作成できますか?私は同じエラーが発生すると思います。あなたが正しい許可を得たら再度確認してください。 – BMW

+0

私はgcloudを自分のユーザーアカウントで実行していて、トピックを作成することに問題はありません。私はサービスアカウントの資格情報でgcloudをどのように使用することができるか分かりません。私は明らかにpythonなどでサービスアカウントを使用してpubsubを作成し、同じエラーが発生するかどうかを確認することができます。私のユーザアカウントには、プロジェクトのオーナーロールもあります。サービスアカウントと同じです – Amit

+0

所有者ロールを持つ同じサービスアカウントで他のリソースを作成しようとしましたが、依然として権限が拒否されています。私は、terraformでリソースを作成するために使用できるサービスアカウントを作成するために何をする必要があるのか​​よく分かりません。 – Amit

答えて

-1

サンプル使用の構成は、より多くのようになります。

// Configure the Google Cloud provider 
provider "google" { 
    credentials = "${file("account.json")}" 
    project  = "my-gce-project" 
    region  = "us-central1" 
} 

// Create a new instance 
resource "google_compute_instance" "default" { 
    # ... 
} 

これはテラフォームから「Googleクラウドプロバイダー」のドキュメントpageに、より詳細に読むことができます。

+0

から新しく作成されたアカウントこれは質問に全く答えません。 – Amit

関連する問題