AWS Cloud9 の環境から AWS のサービス の呼び出し - AWS Cloud9

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Cloud9 の環境から AWS のサービス の呼び出し

AWS Cloud9 開発環境から AWS のサービス を呼び出すことができます。たとえば、次のアクションを実行できます。

  • Amazon Simple Storage Service (Amazon S3) バケットにデータをアップロードおよびダウンロードします。

  • Amazon Simple Notification Service (Amazon SNS) トピックを通じてブロードキャスト通知を送信します。

  • Amazon DynamoDB (DynamoDB) データベースのデータの読み取り/書き込みを行う。

環境から AWS のサービス をいくつかの方法で呼び出すことができます。例えば、AWS Command Line Interface (AWS CLI) または AWS CloudShell を使用して、ターミナルセッションからコマンドを実行できます。環境内で実行したコードから AWS のサービス を呼び出すこともできます。そのためには、JavaScript、Python、Ruby、PHP、Go、および C++ などのプログラミング言語用の AWS SDK を使用します。詳細については、「AWS CLI および aws-shell のサンプル」、AWS Command Line Interface ユーザーガイド、および AWS SDK を参照してください。

AWS CLI、AWS CloudShell、またはコードから AWS のサービス を呼び出すたびに、AWS CLI、AWS CloudShell、またはコードは、呼び出しと一緒に一連の AWS アクセス認証情報を提供する必要があります。これらの認証情報は、呼び出し元にその呼び出しを行う適切なアクセス許可があるかどうかを判別します。認証情報に適切な許可がない場合は、呼び出しは失敗します。

環境に認証情報を提供するには、いくつかの方法があります。次の表は、いくつかのアプローチについて説明します。

環境タイプ アプローチ

EC2

AWS マネージド一時認証情報。

このアプローチは EC2 環境にお勧めします。AWS マネージド一時認証情報は、 ユーザーに代わって、EC2 環境で AWS アクセス認証情報を管理しながら、次の AWS セキュリティベストプラクティスを守っています。

EC2 環境を使用している場合は、このトピックの残りの部分はスキップできます。これは、AWS マネージド一時認証情報は、環境内で既に設定されています。

詳細については、「AWS マネージド一時認証情報」を参照してください。

EC2

IAM インスタンスプロファイルをインスタンスに添付します。

この方法は、何らかの理由で AWS マネージド一時認証情報を使用できない場合にのみ使用してください。AWS マネージド一時認証情報と同様に、インスタンスプロファイルは AWS アクセス認証情報をユーザーに代わって管理します。ただし、インスタンスプロファイルを作成して管理し、Amazon EC2 インスタンスに自分で直接添付する必要があります。

手順については、「インスタンスプロファイルを作成して使用し一時認証情報を管理する」を参照してください。

EC2 または SSH

永続的な AWS アクセス認証情報を環境内に保存します。

このアプローチは、一時的な AWS アクセス認証情報を使用するよりも安全性が低くなります。ただし、SSH 環境で唯一サポートされているアプローチです。

手順については、「環境で永続的認証情報を作成して保存する」を参照してください。

EC2 または SSH

永続的な AWS アクセス認証情報をコードに直接挿入します。

AWS セキュリティのベストプラクティスに従わないため、このアプローチは推奨しません。

このアプローチは推奨しないため、このトピックでは説明しません。

インスタンスプロファイルを作成・使用しマネージド一時認証情報を管理する

注記

AWS Cloud9 SSH 開発環境にこの手順を使用することはできません。代わりに、「環境で永続的認証情報を作成して保存する」までスキップしてください。

インスタンスプロファイルの代わりに、AWS マネージド一時認証情報の使用をお勧めします。何らかの理由で AWS マネージド一時認証情報を使用できない場合にのみ、以下の指示に従ってください。詳細については、「AWS マネージド一時認証情報」を参照してください。

この手順では、IAM と Amazon EC2 を使用して、IAM インスタンスプロファイルを作成し、環境に接続する Amazon EC2 インスタンス環境に添付します。このインスタンスプロファイルは、ユーザーの代わりに一時認証情報を管理します。この手順は、AWS Cloud9 の環境が既に作成されていることを前提としています。環境を作成するには、「環境を作成する」を参照してください。

これらのタスクは、IAM と Amazon EC2 コンソール、またはAWS コマンドラインインターフェイス (AWS CLI) を使用して完了できます。

IAM コンソールを使用してインスタンスプロファイルを作成する

注記

インスタンスプロファイルを含む IAM ロールがすでにある場合は、この手順をスキップして、「Amazon EC2 コンソールを使用してインスタンスプロファイルをインスタンスに添付する」に進みます。

  1. IAM コンソール (https://console.aws.amazon.com/iam/) にサインインします。

    このステップでは、AWS アカウント の管理者レベルの認証情報使用にサインインすることをお勧めします。これが実行できない場合は、AWS アカウント 管理者にお問い合わせください。

  2. ナビゲーションバーで [ロール]を選択します。

    注記

    IAM コンソールを使用してインスタンスプロファイルを単独で作成することはできません。インスタンスプロファイルを含む IAM ロールを作成する必要があります。

  3. [Create role] (ロールの作成) を選択します。

  4. [Select type of trusted entity] (信頼されたエンティティの種類を選択) ページで、AWS のサービス をすでに選択した状態にし、[Choose the service that will use this role] (このロールを使用するサービスを選択) で [EC2] を選択します。

  5. ユースケースの選択]で、[EC2]を選択します。

  6. [Next: Permissions] (次へ: 許可) を選択します。

  7. Attach permissions policies (アクセス権限ポリシーをアタッチする)]ページで、ポリシーのリストの[AdministratorAccess]の横のボックスを選択して、[次へ: 確認]を選択します。

    注記

    AdministratorAccess ポリシーは、AWS アカウント 全体ですべての AWS アクションおよびリソースへのアクセスを無制限に許可します。これは実験目的でのみ使用してください。詳細については、IAM ユーザーガイド の「IAM ポリシー」を参照してください。

  8. [Review] (確認) ページの [Role Name] (ロール名) に、ロールの名前を入力します (例: my-demo-cloud9-instance-profile)。

  9. [ロールの作成] を選択します。

Amazon EC2 コンソールを使用してインスタンスプロファイルをインスタンスにアタッチする」に進みます。

AWS CLI を使用してインスタンスプロファイルを作成する

注記

インスタンスプロファイルを含む IAM ロールがすでにある場合は、スキップして、AWS CLI を伴うインスタンスにインスタンスプロファイルを添付するに進みます。

このトピックでは、AWS アカウント の管理者レベルの認証情報を使用して AWS CLI を設定することをお勧めします。これが実行できない場合は、AWS アカウント 管理者にお問い合わせください。

注記

AWS マネージド一時認証情報を使用している場合は、AWS Cloud9 IDE のターミナルセッションを使用して、このセクションのコマンドの一部またはすべてを実行することはできません。AWS のセキュリティに関するベストプラクティスに対応するため、AWS マネージド一時認証情報は一部のコマンドの実行を許可しません。代わりに、AWS Command Line Interface (AWS CLI) の別のインストールから、これらのコマンドを実行できます。

  1. インスタンスプロファイルの必須および IAM ロールに対する AWS の信頼関係を定義します。これを行うには、次の内容のファイルを作成して保存します (例えば、my-demo-cloud9-instance-profile-role-trust.json)。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. ターミナルまたはコマンドプロンプトを使用して、このファイルを保存したディレクトリに切り替えます。

  3. インスタンスプロファイルの IAM ロールを作成します。これを行うには、IAM create-role コマンドを実行します。これを行うには、新しい IAM ロールの名前 (例えば、my-demo-cloud9-instance-profile-role) と、保存したファイルの名前を指定します。

    aws iam create-role --role-name my-demo-cloud9-instance-profile-role --assume-role-policy-document file://my-demo-cloud9-instance-profile-role-trust.json
  4. AWS アクセス許可をインスタンスプロファイル IAM ロールに を添付します。これを行うには、IAM attach-role-policy コマンドを実行します。既存の IAM ロールの名前と、AdministratorAccess という名の AWS マネージドポリシーの Amazon リソースネーム (ARN) を指定します。

    aws iam attach-role-policy --role-name my-demo-cloud9-instance-profile-role --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
    注記

    AdministratorAccess ポリシーは、AWS アカウント 全体ですべての AWS アクションおよびリソースへのアクセスを無制限に許可します。これは実験目的でのみ使用してください。詳細については、IAM ユーザーガイド の「IAM ポリシー」を参照してください。

  5. インスタンスプロファイルを作成します。これを行うには、新しい IAM インスタンスプロファイルの名前を指定する IAM create-instance-profile コマンド (たとえば my-demo-cloud9-instance-profile) を実行します。

    aws iam create-instance-profile --instance-profile-name my-demo-cloud9-instance-profile
  6. インスタンスプロファイルに IAM ロールを添付します。これを行うには、既存の IAM ロールとインスタンスプロファイルの名を指定する IAM add-role-to-instance-profile を実行します。

    aws iam add-role-to-instance-profile --role-name my-demo-cloud9-instance-profile-role --instance-profile-name my-demo-cloud9-instance-profile

AWS CLI を使用してインスタンスプロファイルを作成するに進みます。

Amazon EC2 コンソールを使用してインスタンスプロファイルをインスタンスに添付する

  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールにサインインします。

    このステップでは、AWS アカウント の管理者の認証情報を使用してサインインすることをお勧めします。これが実行できない場合は、AWS アカウント 管理者にお問い合わせください。

  2. ナビゲーションバーで、環境用と一致する AWS リージョン がリージョンセレクターに表示されていることを確認します。例えば、米国東部 (オハイオ) リージョンで環境を作成した場合は、このリージョンセレクターで米国東部 (オハイオ)を選択します。

  3. 実行中のインスタンス]リンク、またはナビゲーションペインで [インスタンス]を展開して、[インスタンス]を選択します。

  4. インスタンスのリストで、環境名を含む [名前]を持つインスタンスを選択します。たとえば、環境名が my-demo-environment の場合は、my-demo-environmentを含む[名前]を持つインスタンスを選択します。

  5. [アクション] メニューで、[セキュリティ]、[IAM ロールの変更] の順に選択します。

    注記

    インスタンスにロールをアタッチしていても、ロールにはインスタンスプロファイルが含まれています。

  6. [IAM ロールの変更] ページの [IAM ロール] で、確認したロール、または前の手順で作成したロールの名前を選択し、[適用] を選択します。

  7. 環境に戻り、AWS CLI を使用して aws configure コマンドを実行するか、AWS CloudShell を使用して configure コマンドを実行します。[AWS アクセスキー ID] または [AWS シークレットアクセスキー] には値を指定しないでください (これらの各プロンプトの後に Enter を押します)。[Default Region name] (デフォルトのリージョン名) では、自分または AWS リソースが配置されているリージョンに最も近い AWS リージョン を指定します。たとえば、米国東部 (オハイオ) リージョンの場合は、us-east-2 を使用します。リージョンのリストについては、「Amazon Web Services 全般のリファレンス」の「AWS リージョンとエンドポイント」を参照してください。オプションで、[Default output format (デフォルト出力形式)]の値を指定します (json など)。

環境から AWS のサービス を呼び出すことができるようになりました。AWS CLI、aws-shell、またはその両方を使用して AWS のサービス を呼び出すには、AWS CLI および aws-shell のサンプルを参照してください。コードから AWS のサービス を呼び出すには、他のチュートリアルとサンプルを参照してください。

AWS CLI を使用してインスタンスプロファイルをインスタンスに添付する

注記

AWS マネージド一時認証情報を使用している場合は、AWS Cloud9 IDE 内のターミナルセッションを使用して、このセクションのコマンドの一部またはすべてを実行することはできません。AWS のセキュリティに関するベストプラクティスに対応するため、AWS マネージド一時認証情報は一部のコマンドの実行を許可しません。代わりに、AWS Command Line Interface (AWS CLI) の別のインストールから、これらのコマンドを実行できます。

  1. Amazon EC2 associate-iam-instance-profile コマンドを実行します。インスタンスプロファイルの名前と ID、環境の Amazon EC2 インスタンスの AWS リージョン ID を指定します。

    aws ec2 associate-iam-instance-profile --iam-instance-profile Name=my-demo-cloud9-instance-profile --region us-east-2 --instance-id i-12a3b45678cdef9a0

    上記のコマンドでは、us-east-2 をインスタンスの AWS リージョン ID で置き換え、i-12a3b45678cdef9a0 をインスタンス ID で置き換えます。

    インスタンスの ID を取得するには、例えば、Amazon EC2 describe-instances コマンドを実行して環境の名前と AWS リージョン ID を指定します。

    aws ec2 describe-instances --region us-east-2 --filters Name=tag:Name,Values=*my-environment* --query "Reservations[*].Instances[*].InstanceId" --output text

    上記のコマンドでは、us-east-2 をインスタンスの AWS リージョン ID で置き換え、 my-environment を環境の名前で置き換えます。

  2. 環境に戻り、AWS CLI を使用して aws configure コマンドを実行するか、aws-shell を使用して configure コマンドを実行します。[AWS Access Key ID] (アクセスキー ID)または[AWS Secret Access Key] (シークレットアクセスキー)には値を指定しないでください。これらの各プロンプトが表示されたら、Enter を押します。[Default Region name] (デフォルトのリージョン名) では、自分または AWS リソースが配置されているリージョンに最も近い AWS リージョン を指定します。たとえば、米国東部 (オハイオ) リージョンの場合は、us-east-2 を使用します。リージョンのリストについては、「Amazon Web Services 全般のリファレンス」の「AWSとエンドポイント」を参照してください。オプションで、[Default output format (デフォルト出力形式)]の値を指定します (json など)。

環境から AWS のサービス を呼び出すことができるようになりました。AWS CLI、aws-shell、またはその両方を使用して AWS のサービス を呼び出すには、AWS CLI および aws-shell のサンプルを参照してください。コードから AWS のサービス を呼び出すには、他のチュートリアルとサンプルを参照してください。

環境に永続的アクセス認証情報を作成して保存する

注記

AWS Cloud9 EC2 開発環境を使用中の場合、AWS マネージド一時認証情報を AWS 永続的アクセス認証情報の代わりに使用することをお勧めします。AWS マネージド一時認証情報を使用するには、「AWS マネージド一時認証情報」を参照してください。

このセクションでは、AWS Identity and Access Management (IAM) を使用して、永続的認証情報のセットを生成します。AWS CLI、aws-shell、またはご使用のコードは、AWS のサービス の呼び出し時にこの認証情報のセットを使用できます。このセットには、AWS アカウント のユーザーに固有の AWS アクセスキー ID と AWS シークレットアクセスキーが含まれています。既に AWS アクセスキー ID と AWS シークレットアクセスキーがある場合は、それらの認証情報を書き留めて、「環境で永続的アクセス認証情報を保存する」に進みます。

永続的認証情報のセットは、IAM コンソールまたは AWS CLI を使用して作成できます。

プログラム的なアクセス権を付与する

AWS Management Console の外部で AWS を操作するには、ユーザーはプログラムによるアクセスが必要です。プログラムによるアクセスを許可する方法は、AWS にアクセスしているユーザーのタイプによって異なります。

ユーザーにプログラムによるアクセス権を付与するには、以下のいずれかのオプションを選択します。

どのユーザーがプログラムによるアクセスを必要としますか? To By

ワークフォース ID

(IAM Identity Center で管理されているユーザー)

一時的な認証情報を使用して、AWS CLI、AWS SDK、または AWS API へのプログラムによるリクエストに署名します。

使用するインターフェイス用の手順に従ってください。

IAM 一時的な認証情報を使用して、AWS CLI、AWS SDK、または AWS API へのプログラムによるリクエストに署名します。 IAM ユーザーガイド」の「AWS リソースでの一時的な認証情報の使用」の指示に従ってください。
IAM

(非推奨)

長期的な認証情報を使用して、AWS CLI、AWS SDK、AWS API へのプログラムによるリクエストに署名します。

使用するインターフェイス用の手順に従ってください。

AWS CLI で永続的アクセス認証情報を作成する

注記

このセクションでは、AWS アカウント アカウントで管理者レベルの認証情報を使用して AWS CLI を設定することをお勧めします。これが実行できない場合は、AWS アカウント 管理者にお問い合わせください。

注記

AWS マネージド一時認証情報を使用している場合は、AWS Cloud9 IDE のターミナルセッションを使用して、このセクションのコマンドの一部またはすべてを実行することはできません。AWS のセキュリティに関するベストプラクティスに対応するため、AWS マネージド一時認証情報は一部のコマンドの実行を許可しません。代わりに、AWS Command Line Interface (AWS CLI) の別のインストールから、これらのコマンドを実行できます。

IAM create-access-key コマンドを実行して、ユーザーの新しい AWS アクセスキーと対応する AWS シークレットアクセスキーを作成します。

aws iam create-access-key --user-name MyUser

前述のコマンドでは、MyUser をユーザーの名前に置き換えます。

表示される AccessKeyIdSecretAccessKey の値を安全な場所に保存します。IAM create-access-key コマンドを実行した後は、これが AWS CLI を使用してユーザーの AWS シークレットアクセスキーを表示できる唯一の機会です。後で必要に応じてユーザーの新しい AWS シークレットアクセスキーを生成するには、IAM ユーザーガイドアクセスキーの作成、修正、および表示 (API、CLI、PowerShell)を参照してください。

環境に永続的アクセス認証情報を保存する

この手順では、AWS Cloud9 IDEを使用して永続的な AWS アクセス認証情報をユーザーの環境に保存します。この手順では、AWS Cloud9 に環境を作成済みで、環境を開いて、AWS Cloud9 IDE をウェブブラウザに表示しているものとします。詳細については、「環境を作成する」と「環境を開く」を参照してください。

注記

次の手順では、環境変数を使用して永続的なアクセス認証情報を保存する方法を示します。AWS CLI または aws-shell を環境にインストールしている場合は、AWS CLI の aws configure コマンド、または aws-shell の configure コマンドを使用して、代わりに永続的アクセス認証情報を保存できます。指示については、AWS Command Line Interface ユーザーガイドの「クイック設定」を参照してください。

  1. 環境が開いている状態で、AWS Cloud9 IDE で新しいターミナルセッションをスタートします (まだスタートしていない場合)。新しいターミナルセッションを開始するには、メニューバーで、[Window (ウィンドウ)]、[New Terminal (新しいターミナル)]の順に選択します。

  2. 一度に 1 つのコマンドを実行して、永続的なアクセス認証情報を表すローカル環境変数を設定します。これらのコマンドで、AWS_ACCESS_KEY_ID: の後に AWS アクセスキー ID を入力します。AWS_SECRET_ACCESS_KEY の後に AWS シークレットアクセスキーを入力します。AWS_DEFAULT_REGION_ID の後に、自分に最も近い (またはお好みの AWS リージョン) AWS リージョンに関連付けられた AWS リージョン 識別子を入力します。利用可能な識別子の一覧については、「Amazon Web Services 全般のリファレンス」の「AWS リージョンとエンドポイント」を参照してください。たとえば、米国東部 (オハイオ) の場合は、us-east-2 を使用します。

    export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY= export AWS_DEFAULT_REGION=
  3. 前述の環境変数は、ターミナルセッションにおいてのみ有効になります。これらの環境変数をターミナルセッション間で利用できるようにするには、以下のように、それらをユーザー環境変数としてシェルプロファイルファイルに追加する必要があります。

    1. IDE の[Environment (環境)]ウィンドウで歯車アイコンを選択し、[Show Home in Favorites (お気に入りのホームを表示する)]を選択します。このステップを繰り返して、[Show Hidden Files (隠しファイルを表示する)]も同様に選択します。

    2. ~/.bashrc ファイルを開きます。

    3. ファイルの末尾に次のコードを入力するか貼り付けます。これらのコマンドで、AWS_ACCESS_KEY_ID: の後に AWS アクセスキー ID を入力します。AWS_SECRET_ACCESS_KEY の後に AWS シークレットアクセスキーを入力します。AWS_DEFAULT_REGION_ID の後に、自分に最も近い (またはお好みの AWS リージョン) AWS リージョンに関連付けられた AWS リージョン 識別子を入力します。利用可能な識別子の一覧については、「Amazon Web Services 全般のリファレンス」の「AWS リージョンとエンドポイント」を参照してください。たとえば、米国東部 (オハイオ) の場合は、us-east-2 を使用します。

      export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY= export AWS_DEFAULT_REGION=
    4. ファイルを保存します。

    5. ~/.bashrc ファイルにこれらの新しい環境変数をロードします。

      . ~/.bashrc

環境から AWS のサービス を呼び出すことができるようになりました。AWS CLI または aws-shell を使用して AWS のサービス を呼び出すには、AWS CLI および aws-shell のサンプルを参照してください。コードから AWS のサービス を呼び出すには、他のチュートリアルとサンプルを参照してください。