5

この記事は最終更新日から3年以上が経過しています。

PHPのAWS-SDKからIAMロールを使用する方法

最終更新日 投稿日 2019年06月13日

PHPのAWS-SDKからIAMロールを仕様する方法です。ググっても適切な情報がなかなか見つからなかったので書きました。

対応

IAMロールを利用する場合は、インスタンス作成時にprofileを渡さない。(書かない)
→profileを書いているとIAMロールではなく、実行環境のcredentials(を含め実行ユーザーのホームディレクトリの.awsディレクトリ以下のファイル)が参照されるところがハマりどころです。

コード例

IAMロールを利用する場合は、$accessKeyId$secretAccessKey は空の状態とします。

<?php
$accessKeyId = '<AWS IAMアクセスキーID>';
$secretAccessKey = '<AWS IAMシークレットアクセスキー>';

// configのデフォルト
$config = [
  'version' => 'latest',
  'region' => 'ap-northeast-1',
  'profile' => 'default'
];

// AccessKeyとSecretAccressKeyがない場合は、IAMロールを使用する
if (empty($awsAccessKeyId) && empty($awsSecretAccessKey)) {
  // IAMロール認証の場合はprofileをセットしない(unsetする)
  unset($config['profile']);
}

$lambda = new \Aws\Lambda\LambdaClient($config);

参考

新規登録して、もっと便利にQiitaを使ってみよう

  1. あなたにマッチした記事をお届けします
  2. 便利な情報をあとで効率的に読み返せます
ログインすると使える機能について
tabimoba
@tabimoba(Tomoyuki Ohno)
クラウドサービスを利用した開発・検証、業務自動化が最近の主な業務。 本業とは別にWebサイトやWebシステムの開発や情シスっぽいことも行っていたり。ネットワークスペシャリスト(NW), AWS認定ソリューションアーキテクトプロフェッショナル, Slack認定開発者, Workato Automation Pro1/2/3(3冠)
ricksoft
リックソフト株式会社は、日本でトップレベルのAtlassian Platinum Solution Partnerであり、大規模ユーザーへの対応実績が認められたEnterpriseの認定をうけ、高度なトレーニング要件をクリアし、小規模から大規模のお客様まで対応可能な実績を示したパートナー企業です。

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
新規登録
すでにアカウントを持っている方はログイン
記事投稿キャンペーン開催中
記事投稿キャンペーン 「エンジニアリングマネジメント」
~
記事投稿キャンペーン 「AI、機械学習」
~
5

Qiitaにログインして、便利な機能を使ってみませんか?

あなたにマッチした記事をお届けします

便利な情報をあとから読み返せます