対象の EC2 内から情報を取得し、そのEC2についている Role に policy を付与したい
itamae で構築対象のEC2サーバーについてる EC2 Role に特定のポリシーを付与したいです
どうするのがスマートかわからないので
とりあえずリモートの hostname を取得して
ローカルで aws-sdk-ruby で同じ hostname になる ec2 インスタンスを探して
ec2 = Aws::EC2::Resource.new(region: 'ap-northeast-1')
ec2.instances.each do |i|
if i.private_dns_name == hostname
その中の role_id を取得して
その role_id から role オブジェクトを作って
atttach policy を呼ぶ
というかなり回りくどい方法しか思いつかないのですが
スマートな方法はないでしょうか
またその場合リモートの hostname の結果をローカルの ruby 上で取得したいのですが
itamae でリモートのシェル実行結果を取得することはどうすれば実現できますか
追記
ec2_instance に IamInstanceProfile というプロパティはあるのですが
Role に関しては出てきません
AWS Console には Role が表示されるんですが
この EC2 Role はどうやって取得すればいいですか