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

AWS Cloud9 は、新しいお客様では利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

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

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

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 のサービス を呼び出すこともできます。これを行うには、 を AWS SDKs などのプログラミング言語に使用します。JavaScript, Python, Ruby, PHP, Go および C++。 詳細については、AWS CLI 「」および「aws-shell サンプル」、AWS Command Line Interface 「 ユーザーガイド」、および「」を参照してくださいAWS SDKs

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

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

環境タイプ アプローチ

EC2

AWS マネージド一時認証情報を使用します。

EC2 環境には、このアプローチをお勧めします。 AWS マネージド一時認証情報は、 AWS セキュリティのベストプラクティスに従いながら、ユーザーに代わってEC2環境内の 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 マネージド一時認証情報」を参照してください。

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

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

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

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

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

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

    注記

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

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

  4. AWS のサービス 既に選択されている信頼されたエンティティのタイプを選択ページで、このロールを使用するサービスを選択する で、 を選択しますEC2

  5. ユースケースを選択する で、 を選択しますEC2

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

  7. アクセス許可ポリシーのアタッチページで、ポリシーのリストで、 の横にあるボックスを選択しAdministratorAccess次へ: レビュー を選択します。

    注記

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

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

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

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

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

注記

インスタンスプロファイルを含むIAMロールが既にある場合は、 を使用してインスタンスプロファイルをインスタンスにアタッチするようにスキップします AWS CLI

このトピックでは、 で管理者レベルの認証情報 AWS CLI を使用して を設定することをお勧めします AWS アカウント。これが実行できない場合は、 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. インスタンスプロファイルIAMロールにアクセス AWS 許可をアタッチします。これを行うには、 IAM attach-role-policy コマンドを実行します。既存のIAMロールの名前と、 という名前の AWS マネージドポリシーの Amazon リソースネーム (ARN) を指定しますAdministratorAccess

    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 create-instance-profile コマンドを実行し、新しいインスタンスプロファイルの名前を指定します (例: my-demo-cloud9-instance-profile)。

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

    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 を押します)。デフォルトリージョン名 では、最も 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 コマンドを実行します。インスタンスプロファイルの名前と、環境の Amazon EC2インスタンスの ID と 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 を取得するには、例えば、環境の名前と AWS リージョン ID を指定して Amazon EC2 describe-instances コマンドを実行できます。

    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 を押します。デフォルトリージョン名 には、最も近い または 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 アクセスキー ID とシー AWS クレットアクセスキーが含まれています。これは、 のユーザー固有のキーです AWS アカウント。アクセスキー ID と AWS シークレットアクセスキーが AWS 既にある場合は、それらの認証情報を書き留めてから、環境 の永続アクセス認証情報の保存に進みます。

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

プログラマチックアクセス権を付与する

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

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

プログラマチックアクセス権を必要とするユーザー 目的 方法

ワークフォースアイデンティティ

(IAMアイデンティティセンターで管理されるユーザー)

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

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

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

(非推奨)

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

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

を使用して永続的アクセス認証情報を作成する AWS CLI

注記

このセクションでは、 で管理者レベルの認証情報 AWS CLI を使用して を設定することをお勧めします AWS アカウント。これができない場合は、 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 ユーザーガイド「アクセスキーの作成、変更、表示 (APICLI、 PowerShell)」を参照してください。

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

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

注記

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

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

  2. 一度に 1 つのコマンドを実行して、永続的なアクセス認証情報を表すローカル環境変数を設定します。これらのコマンドでは、 の後に AWS アクセスキー ID AWS_ACCESS_KEY_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、歯車アイコンを選択し、お気に入り でホームを表示 を選択します。このステップを繰り返して、[Show Hidden Files (隠しファイルを表示する)]も同様に選択します。

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

    3. ファイルの末尾に次のコードを入力するか貼り付けます。これらのコマンドでは、 の後に AWS アクセスキー ID AWS_ACCESS_KEY_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 のサービス を呼び出すには、他のチュートリアルとサンプルを参照してください。