4
1

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 3 years have passed since last update.

[備忘]AWSのIAM ロールとGCP のサービスアカウントを紐付ける時はIAMロール名に注意したい

Posted at

ガッキーは掟上今日子のガッキーが一番好きな人です。


タイトルと見出し全く関係ありません。

さて、
ちょっとAWS LambdaからGoogle Cloud側のリソースにアクセスする必要があって、
最初、Google Cloudのサービスアカウントのキー情報を組み込んで作ったんですが、
リーダーから、Workload Identity 連携という機能があるという話を聞き、
こっちの方がキーファイル持たないので、セキュアだなあーってことで、対応していました。

やり方とかはこの辺参照のこと。
まあ、AWSのAssumeRole的なものですね(超絶大雑把)

Lambda関数を直して、
Google Cloud側で
Workload Identity プールとプロバイダーを作成し、
それにサービスアカウントを紐づけて、認証情報ファイルを落として、いざ実行!
エラー・・・。

「The size of mapped attribute google.subject exceeds the 127 bytes limit. Either modify your attribute mapping or the incoming assertion to produce a mapped attribute that is less than 127 bytes.」

なんやなん?
しかも、google-auth-libraryで落ちている・・・。
どういうことや・・・。
別環境で試してみて、上手く行ってますます謎が深まり、色々と見比べてみた結果、
IAMロール名が長いとエラーになる。
ということが判明。
わかった時はまじかーって思いました。


ただ、冷静になって考えてみると、
これって、AWSのAssumeRoleするときも同じなんかなーと、
ちょっと調べたところ、Switch Roleするときにはロール名の制限あるんで、これと同じようなものかなと思った次第。

ロールをプログラムで作成する場合、RoleName に加えて、最大 512 文字の Path を追加できます。ロール名の長さは最大 64 文字です。ただし、AWS マネジメントコンソール の [Switch Role] 機能でロールを使用するには、Path と RoleName の合計が 64 文字を超えることはできません。

ロールを切り替えるユーザーアクセス許可の付与


忘れてまたハマる嫌なので、備忘兼ねて書きました。
まだまだ勉強になることが多いです。
さてさて、Google Cloud側のリソース、Lambdaでアクセスするぞい(この話はスタートでしかない・・・orz)

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?