CLIでEC2のIAMRoleを作成する際に初心者がハマったポイントの備忘録です。
AWSの公式ドキュメント以外に記事があまり見当たらなかったので、まとめてみました。
##コンソールとCLIの違い
CLIでEC2のIAMRoleを作成するにあたって、最初は以下の手順で作成しようとしてました。
Policy作成
Roleの作成
RoleにPolicyをアタッチ
作成時にエラーが出てきて困惑。。。
A client error (MalformedPolicyDocument) occurred when calling the CreateRole operation: Has prohibited field Resource
調べてみると、インスタンスプロファイルを意識しないとCLIでは作成できないっぽい
コンソールでの作成では自動的にインスタンスプロファイルが作成されるとのこと。
インスタンスプロファイルも知らなかったので、調べました。
(知らないことが多すぎる、、、)
作成するIAMRoleはEC2のRoleだよと関連づけるものがインスタンスプロファイルなのだと理解。
##CLIでIAMRole作成リベンジ
Policy作成
aws iam create-policy --policy-name hoge-policy --policy-document file://hoge-policy.json --describe "hoge"
Role&EC2の信頼関係作成
aws iam create-role --role-name hoge-role --assume-role-policy-document file://ec2-assume.json
Policyのアタッチ
aws iam put-role-policy --role-name hoge-role --policy-name hoge-policy --policy-document file://hoge-policy.json
インスタンスプロファイルの設定
(インスタンスプロファイル名とロール名が一致しないとエラーになるとの噂も)
aws iam create-instance-profile --instance-profile-name hoge-role
aws iam create-instance-profile --role-name hoge-role --instance-profile-name hoge-role
ここまでコマンドを実行すれば、EC2のIAMRoleが作成できてました!
##感想
コンソールで作成できる簡単さに感激した。
記事にして自分のやったこと見直したけど、最初のPolicy作成いるのかな?
Role作成時にPolicyも作っている気がしてきた・・・