長期認証情報を使用して AWS SDK とツールを認証する - AWS SDK とツール

長期認証情報を使用して AWS SDK とツールを認証する

警告

セキュリティリスクを避けるため、専用ソフトウェアの開発や実際のデータを扱うときは、IAM ユーザーを認証に使用しないでください。代わりに、AWS IAM Identity Center などの ID プロバイダーとのフェデレーションを使用してください。

IAM ユーザーを使用してコードを実行する場合、開発環境の SDK またはツールは、 AWS credentials共有ファイル内の長期 IAM ユーザー認証情報を使用して認証します。「IAM トピックのセキュリティのベストプラクティス」 を確認し、できるだけ早く IAM Identity Center またはその他の一時的な認証情報に移行してください。

認証情報に関する重要な警告とガイダンス

認証情報に関する警告
  • お使いのアカウントのルート認証情報を使用して AWS リソースにアクセスしないでください。これらの認証情報は無制限のアカウントアクセスを提供し、取り消すのが困難です。

  • アプリケーションファイルにリテラルアクセスキーや認証情報を配置しないでください。これを行うと、パブリックリポジトリにプロジェクトをアップロードするなど、誤って認証情報が公開されるリスクが発生します。

  • プロジェクト領域に認証情報を含むファイルを含めないでください

  • 共有 AWS credentials ファイル中に格納された認証情報はプレーンテキストで格納される点に注意してください。

認証情報を安全に管理するための追加のガイダンス

AWS 認証情報を安全に管理する方法の概要については、「AWS 全般のリファレンス」の「AWS アクセスキーを管理するためのベストプラクティス」を参照してください。そこでの説明に加えて、以下の点を考慮してください。

  • Amazon Elastic Container Service (Amazon ECS) タスクで、タスク用の IAM ロールを使用します。

  • Amazon EC2 インスタンスで実行中のアプリケーションに対して、IAM ロールを使用します。

前提条件: AWS アカウントを作成する

IAM ユーザーを使用して AWS サービスにアクセスするには、AWS アカウントと AWS 認証情報が必要です。

  1. アカウントを作成する。

    AWS アカウントを作成するには、「AWS Account Management リファレンスガイド」の「使用開始:初めての AWS ユーザーですか?」を参照してください。

  2. 管理者ユーザーを作成します。

    マネジメントコンソールとサービスへのアクセスには、root ユーザーアカウント (作成した初期アカウント) を使用しないでください。代わりに、「IAM ユーザーガイド」の「管理ユーザーを作成する」で説明されているように、管理ユーザーアカウントを作成します。

    管理ユーザーアカウントを作成してログインの詳細を記録したら、ルートユーザーアカウントから確実にサインアウトし、管理者アカウントを使用して再度サインインします。

これらはいずれも、AWS で開発を行ったり、AWS でアプリケーションを実行したりするのに適切なユーザーアカウントではありません。そのためには、これらのタスクに適したユーザー、アクセス許可セットまたはサービスロールを作成する必要があります。詳細については、「IAM ユーザーガイド」の「最小特権アクセス許可を適用する」を参照してください。

ステップ 1: IAM ユーザーを作成する

  • IAM ユーザーガイド」の「IAM ユーザーの作成 (コンソール)」の手順に従って IAM ユーザーを作成します。IAM ユーザーを作成する場合:

    • [AWS マネジメントコンソールへのユーザーアクセスを提供] を選択することをお勧めします。これにより、AWS CloudTrail 診断ログの確認や Amazon Simple Storage Service へのファイルのアップロードなど、ビジュアル環境で実行しているコードに関連する AWS のサービスを表示できます。これは、コードをデバッグするときに役立ちます。

    • [アクセス許可を設定] - [アクセス許可オプション] で、このユーザーにアクセス許可を割り当てる方法として [ポリシーを直接アタッチする] を選択します。

      • ほとんどの「開始方法」 SDK チュートリアルでは、Amazon S3 サービスを例として使用しています。アプリケーションに Amazon S3 へのフルアクセスを提供するには、このユーザーにアタッチする AmazonS3FullAccess ポリシーを選択します。

    • アクセス許可の境界またはタグの設定に関する手順のオプションのステップは無視できます。

ステップ 2: アクセスキーを取得する

  1. IAM コンソールのナビゲーションペインで [ユーザー] を選択し、以前に作成したユーザーの User name を選択します。

  2. ユーザーのページで、[セキュリティ認証情報] ページを選択します。次に、[アクセスキー][アクセスキーの作成] を選択します。

  3. [アクセスキーを作成ステップ1]で、[コマンドラインインターフェイス (CLI)]または[ローカルコード]を選択します。どちらのオプションでも、 AWS CLI と SDK の両方で使用できる同じタイプのキーが生成されます。

  4. [アクセスキーの作成ステップ 2] で、オプションのタグを入力して [次へ] を選択します。

  5. [アクセスキーの作成ステップ 3] で、[.csv ファイルをダウンロード] を選択し、IAM ユーザーのアクセスキーとシークレットアクセスキーを含む .csv ファイルを保存します。この情報は後で必要になります。

    警告

    適切なセキュリティ対策を講じてこれらの認証情報を安全に保管してください。

  6. [完了] を選択します。

ステップ 3: credentials 共有ファイルを更新する

  1. 共有 AWS credentials ファイルを作成するか、開きます。このファイルは、~/.aws/credentials Linux および macOS システム、および %USERPROFILE%\.aws\credentials Windows 上にあります。詳細については、「認証情報ファイルの場所」 を参照してください。

  2. 共有 credentials ファイルに次のテキストを追加します。ID 値の例とキー値の例を、先にダウンロードした .csv ファイルの値に置き換えます。

    [default] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

  3. ファイルを保存します。

認証情報を保存する最も一般的な方法は credentials 共有ファイルです。これらは環境変数として設定することもできます。AWS アクセスキーの環境変数名を参照してください。これは始めるための方法ですが、IAM Identity Center やその他の一時的な認証情報にできるだけ早く移行することをお勧めします。長期認証情報の使用から移行した後は、必ず credentials 共有ファイルからこれらの認証情報を削除してください。