0
0

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 1 year has passed since last update.

【ふりかえり】インスタンスプロファイル

Last updated at Posted at 2023-08-24

はじめに

インスタンスプロファイル

  • IAMロールを格納するコンテナのこと
  • EC2だけに使われるもの
  • マネジメントコンソールを使用してEC2のロールを作成する場合、自動的に作成されて紐づけされる

ハンズオンで実施したコマンド

実行したコマンドたちを一度整理します。

IAMロールの作成

aws iam create-roleを実行します。

aws iam create-role \
  --role-name ${IAM_ROLE_NAME} \
  --path ${IAM_ROLE_PATH} \
  --assume-role-policy-document file://${FILE_IAM_ROLE_DOC}

ここで出てきたassume-roleについては、こちらの記事がとても分かりやすく解説されています。
IAM ロールの PassRole と AssumeRole をもう二度と忘れないために絵を描いてみた
aws iam list-rolesで作成したIAMロールを確認します。

aws iam list-roles \
  --query "Roles[?RoleName == \`${IAM_ROLE_NAME}\`].RoleName" \
  --output text

IAMインスタンスプロファイルの作成

aws iam create-instance-profileを実行します。

aws iam create-instance-profile \
  --instance-profile-name ${IAM_INSTANCE_PROFILE_NAME} \
  --path "${IAM_INSTANCE_PROFILE_PATH}"

作成したインスタンスプロファイルを確認します。
aws iam list-instance-profileを実行します。

aws iam list-instance-profiles \
  --query "InstanceProfiles[?InstanceProfileName == \`${IAM_INSTANCE_PROFILE_NAME}\`].InstanceProfileName" \
  --output text

インスタンスプロファイルにIAMロールをアタッチする

aws iam add-role-to-instance-profileを実行します。

aws iam add-role-to-instance-profile \
  --instance-profile-name ${IAM_INSTANCE_PROFILE_NAME} \
  --role-name ${IAM_ROLE_NAME}

アタッチできていることを確認します。
aws iam get-instance-profileを実行します。

aws iam get-instance-profile \
  --instance-profile-name ${IAM_INSTANCE_PROFILE_NAME} \
  --query 'InstanceProfile.Roles[].RoleName' \
  --output text

IAMポリシーのアタッチ

aws iam attach-role-policyを実行します。

aws iam attach-role-policy \
  --role-name ${iam_role_name} \
  --policy-arn ${iam_policy_arn}

ポリシーがアタッチされていることを確認します。
aws iam list-attached-role-policiesを実行します。

aws iam list-attached-role-policies \
  --role-name ${iam_role_name} \
  --query "AttachedPolicies[?PolicyName == \`${IAM_POLICY_NAME}\`].PolicyName" \
  --output text

インスタンスイメージIDを取得して、変数に指定する

実行したコマンドはこちらです。

ec2_instance_image_id=$( \
  aws ec2 describe-images \
    --filters Name=name,Values="${EC2_INSTANCE_IMAGE_NAME}" \
    --query 'Images[].ImageId' \
    --output text \
) \
  && echo ${ec2_instance_image_id}
  • ec2_instance_image_id=$( \を入力します。
  • 続くコマンドにaws ec2 describe-images \として--filters--queryで対象を絞ります。
  • 最後に&& echoで出力させます。

同様に、VPC IDやサブネットIDも子のハンズオンの中で出力させています。

まとめ

  • これまでのCLI支部の資料をもとにハンズオンを試していたが、Qiitaには投稿してこなかったので改めて知識を整理できた
  • AWS CLIを触ることで、コンソール画面ではあまり意識しないものを深く知ることができる
  • CLI支部の資料はクオリティが高く、度々勉強会も開催されているので時間を見つけて今後も参加していきたい

参考

【参考】Amazon EC2 の IAM ロール
【参考】インスタンスプロファイルの使用
【参考】特定のサブネットにある AWS リソースの一覧と IP アドレスを CSV で出力してみた

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?