23
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

awsで "The policy is attached to 0 entities but it must be attached to a single role" エラーが出た場合の対処法

Last updated at Posted at 2019-01-08

はじめに

awsのCodeBuildでビルドプロジェクトを作成しようとしたときに、以下のエラーが出てプロジェクトが作成できないという現象に遭遇しました。
"The policy is attached to 0 entities but it must be attached to a single role"

スクリーンショット 2019-01-08 13.46.47.png

本エラーの発生手順と解決策について以下にまとめます。

結論

本エラーはCodebuild(awsサービス)が自動的に作成し、指定したIAMロールにアタッチしようとしているポリシーA(CodeBuildBasePolicy-プロジェクト名-リージョン名)と同一のポリシーA'が既に存在*しており、かつ、当該IAMロールからポリシーA'がデタッチされていると発生します。

* 過去に同一のプロジェクト名でCodeBuildプロジェクトを作成している場合に存在する

ポリシーA'(CodeBuildBasePolicy-プロジェクト名-リージョン名)を削除すれば、エラーは発生しなくなります。

エラーが出る時

以下の手順で本エラーが発生します(2019/01/08現在)。

1. Codebuildでプロジェクトを作成する(例としてプロジェクト名を"testproject"とする)

※「AWS CodeBuild にこのサービスロールの編集を許可し、このビルドプロジェクトでの使用を可能にする」にチェックを入れて作成する

スクリーンショット 2019-01-08 14.04.34.png

2. 作成したtestprojectを削除する
3. testproject作成時に指定したロール(ここではRoleForCodeBuild)から、testproject作成時にCodeBuildが自動的に作成・アタッチしたポリシーをデタッチする

スクリーンショット 2019-01-08 13.45.52.png

4.CodeBuildプロジェクト作成画面を開きさきほどと同じ名前(testproject)を入力して、作成しようとする (「AWS CodeBuild にこのサービスロールの編集を許可し、このビルドプロジェクトでの使用を可能にする」にチェックを入れる)

「ビルドプロジェクトを作成する」を押すと本エラーが発生します。

エラーの原因

CodeBuildが自動的に作成して、ユーザが指定したロールにアタッチしようとしているポリシーが既に存在し、かつ、それが指定したロールからデタッチされているため、です。

以下のようなケースで起こりうると思います。

CodeBuildプロジェクトを削除しても、その時にCodeBuildが自動的に作成したポリシーは残ります。既存のロールに既に不要なポリシーが残っている(アタッチされている)のは気持ち悪いためロールの管理画面で×ボタンを押してデタッチします。その後、忘れた頃にまたCodeBuildでプロジェクト作るときに、たまたま以前と同じ名前でプロジェクトを作成すると、本エラーが発生します。

エラーの解決策

CodeBuildが自動的に作成したポリシーを削除する。

スクリーンショット 2019-01-08 13.53.04.png

CodeBuildが自動的に作成したポリシーであり、かつ、プロジェクトごとに作成されるポリシーのため、以前に作成されたCodeBuildBasePolicy-xxxポリシーは削除して問題ない。

まとめ

"The policy is attached to 0 entities but it must be attached to a single role"エラーが発生する条件とその解決方法をまとめました。

23
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?