AWS SDK for PHP バージョン 3 の認証情報 - AWS SDK for PHP

AWS SDK for PHP バージョン 3 の認証情報

Amazon Web Services にリクエストを行うには、AWS アクセスキー (認証情報とも呼ばれます) を AWS SDK for PHP に提供します。

これは以下の方法でできます。

  • デフォルトの認証情報プロバイダーチェーンを使用する (推奨)

  • 特定の認証情報プロバイダーまたはプロバイダーチェーンを使用する (または独自のものを作成する)。

  • 認証情報を自分で提供する。提供できるのは、ルートアカウント認証情報、IAM 認証情報、または AWS STS から取得した一時的な認証情報です。

重要

セキュリティの観点から、AWS アクセスにはルートアカウントの代わりに IAM ユーザーを使用することを強くお勧めします。詳細については、『IAM User Guide』の「IAM のベストプラクティス」を参照してください。

デフォルトの認証情報プロバイダチェーンの使用

認証情報の引数を指定しないで新しいサービスクライアントを初期化すると、SDK はデフォルトの認証情報プロバイダチェーンを使用して AWS 認証情報を検索します。SDK では、チェーンのプロバイダの中で、最初にエラーのない認証情報を返したものを使用します。

デフォルトのプロバイダチェーンは、次の順序で認証情報を検索して使用します。

  1. 環境変数の認証情報を使用します。

    Amazon EC2 インスタンス以外のマシンで開発作業を行う場合は、環境変数を設定すると便利です。

  2. AWS 共有の認証情報ファイルと認証情報プロファイルを使用します。

    この認証情報ファイルと同じものが他の SDK や AWS CLI でも使用されます。共有の認証情報ファイルをすでに使用している場合は、そのファイルを当目的に使用できます。

    ほとんどの PHP コード例では、この方法を使用しています。

  3. IAM ロールを継承します。

    IAM ロールは、インスタンス上のアプリケーションに対して、AWS の呼び出しを行うための一時的なセキュリティ認証情報を提供します。たとえば、IAM ロールは複数の Amazon EC2 インスタンスに認証情報を分散して管理するための簡単な方法を提供します。

認証情報を追加するその他の方法

認証情報は以下の方法でも追加できます。

警告

誤って認証情報を SCM リポジトリにコミットしがちであるため、認証情報をハードコードすることは危険です。そうすることによって、意図したより多くの人に認証情報が公開される可能性があります。また、今後、認証情報を更新することが難しくなります。認証情報をハードコードしたコードをソース管理に送信しないでください。

  • 匿名クライアントの作成

    サービスで匿名アクセスが許可されている場合に、認証情報が関連付けられていないクライアントを作成します。

詳細については、「AWS セキュリティ認証情報のベストプラクティス」 (アマゾン ウェブ サービス全般のリファレンス) を参照してください。

トピック