Google CloudのIAMロールにおいて、オーナーとはプロジェクトやリソースに対して最上位の権限を持つロールです。
自分は以前、AWSに例えるとAdminのような全ての権限を持つロールという理解をしていましたが、そうではありません。
そのことを実感した事例をいくつか紹介いたします。

オーナーとは?

前述の通り、プロジェクトやリソースに対して最上位の権限を持つロールです。
リソースの作成、削除、変更、アクセス権の設定など、ほぼ全ての操作を実行することができ、他のユーザーやサービスアカウントに対しての権限委任をすることもできます。

事例 1

Terraformを使うにあたってサービスアカウントキーを運用を廃止するために、サービスアカウントの権限借用を許可しようとした時に発見しました。
これには以下のロールに含まれる権限が必要です。

サービス アカウント ユーザー
    iam.serviceAccounts.actAs

サービス アカウント トークン作成者
    iam.serviceAccounts.getAccessToken
    iam.serviceAccounts.getOpenIdToken
    iam.serviceAccounts.implicitDelegation
    iam.serviceAccounts.signBlob
    iam.serviceAccounts.signJwt

オーナーに含まれる権限は以下でした。
※関連する部分だけ載せています。

オーナー
    iam.serviceAccounts.actAs
    iam.serviceAccounts.create
    iam.serviceAccounts.delete
    iam.serviceAccounts.disable
    iam.serviceAccounts.enable
    iam.serviceAccounts.get
    iam.serviceAccounts.getIamPolicy
    iam.serviceAccounts.list
    iam.serviceAccounts.setIamPolicy
    iam.serviceAccounts.undelete
    iam.serviceAccounts.update

比較すると、サービス アカウント トークン作成者の権限がオーナーには含まれていないことがわかります。
従って、この場合はオーナーとは別に、サービス アカウント トークン作成者を付与する必要があります。

事例 2

BigQueryの料金改定に伴い、ストレージコストの試算をする際に、INFORMATION_SCHEMA.TABLE_STORAGEビューを使った時でした。
こちらは以下の権限が必要です。

必要な権限
    bigquery.tables.get
    bigquery.tables.list

この権限が含まれているロール
    BigQuery 管理者
    BigQuery データ閲覧者
    BigQuery データ編集者
    BigQuery メタデータ閲覧者

オーナーに含まれる権限は以下でした。
※関連する部分だけ載せています。

オーナー
    bigquery.tables.createIndex
    bigquery.tables.createSnapshot
    bigquery.tables.deleteIndex
    bigquery.tables.deleteSnapshot
    bigquery.tables.getIamPolicy
    bigquery.tables.restoreSnapshot
    bigquery.tables.setIamPolicy

必要な権限がオーナーには含まれていないことがわかります。
従って、上記ロールや必要権限を満たすカスタムロールを別途付与する必要があります。

最後に

オーナーは全ての権限を持っているわけではないことがわかりました。
ただ、それでも非常に多くの権限を持っており、含まれていない権限を網羅することは難しいため、このことを認識しておくことが大切だと思います。
今回の事例以外にも、該当する場面は出てくると思いますので、発見でき次第また紹介したいと思います。

参考
サービス アカウントの権限借用の管理
TABLE_STORAGE ビュー