やっほー
【aws-sdk】EC2インスタンスプロファイル情報を取得する方法

【aws-sdk】EC2インスタンスプロファイル情報を取得する方法

  • 2019年4月23日
  • 2021年3月18日
  • AWS
  • 3view
AWS 【aws-sdk】EC2インスタンスプロファイル情報を取得する方法

aws-sdkを使用してEC2のインスタンスプロファイル情報を取得したい!

認証情報を取得する方法はいくつかあります。

ただ、EC2にデプロイしたアプリからAWSの認証情報を取得する方法でベストなのは、IAMロールの権限を取得することです。

ということで今回は、aws-sdkでEC2インスタンスプロファイル情報を取得する方法を解説します!

前提

  • EC2にIAMロールが付与されていること
  • ライブラリ「aws-sdk」がインストールされていること

認証情報を取得する方法

AWSの認証情報を取得する方法はいくつかあります。

例えば、IAMユーザのアクセスキーなどを利用する場合や、今回のようにIAMロール権限を利用する方法です。

  • IAMユーザのアクセスキー・シークレットキーを利用する
  • EC2のIAMロール権限を利用する

ただ、セキュリティを考慮すると、IAMロール権限を利用するのがベストです。これに関しては後述します。

なぜIAMロールを利用するのか?

例えば、IAMユーザのアクセスキーなどを利用する場合、キー情報をコード上で保持しなくてはなりません

仮にIAMユーザが最強の権限を持っていたとして、このキーが漏洩した場合、このキー情報を取得した人は何でもできてしまいます。

要は、セキュリティ的に非常に危険だということです。

ただし、IAMロールは、言ってしまえばただの権限の集まりにすぎず、また、コード上にキー情報などを持つ必要もありません。

IAMロールを利用するのは、セキュリティ的な観点から安全だということになります。

PHPでIAMロール権限を取得する方法

IAMロール権限を取得するには、「EC2に付与されたIAMロール権限を取得する」必要があります。

EC2ではこの情報をインスタンスプロファイルというファイルに保持しています。

つまり、PHPからインスタンスプロファイル情報を取得し、認証情報を取得することができれば、その認証情報を用いてAWSのサービスをPHPから利用することができるわけです。

PHPでインスタンスプロファイル情報を取得する方法

これで、EC2のインスタンスプロファイル情報を取得することができます。簡単ですね。

まとめ

こんな簡単なコードで取得できるのか半信半疑でしたが、意外といけちゃいました。

aws-sdkは奥が深いですが、うまくいった時は感謝感激。

ではまた!

【aws-sdk】EC2インスタンスプロファイル情報を取得する方法
フォローしてもらえると泣いて喜びます