AWS Cloud9 は、新規顧客には利用できなくなりました。 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 コンソールを使用してインスタンスプロファイルをインスタンスに添付する」に進みます。
-
IAM コンソール (https://console.aws.amazon.com/iam/
) にサインインします。 このステップでは、AWS アカウント の管理者レベルの認証情報使用にサインインすることをお勧めします。これが実行できない場合は、AWS アカウント 管理者にお問い合わせください。
-
ナビゲーションバーで [ロール]を選択します。
注記
IAM コンソールを使用してインスタンスプロファイルを単独で作成することはできません。インスタンスプロファイルを含む IAM ロールを作成する必要があります。
-
[ロールの作成] を選択します。
-
[Select type of trusted entity] (信頼されたエンティティの種類を選択) ページで、AWS のサービス をすでに選択した状態にし、[Choose the service that will use this role] (このロールを使用するサービスを選択) で [EC2] を選択します。
-
[ユースケースの選択]で、[EC2]を選択します。
-
[Next: Permissions] (次へ: アクセス許可) を選択します。
-
[Attach permissions policies (アクセス権限ポリシーをアタッチする)]ページで、ポリシーのリストの[AdministratorAccess]の横のボックスを選択して、[次へ: 確認]を選択します。
注記
AdministratorAccess ポリシーは、AWS アカウント 全体ですべての AWS アクションおよびリソースへのアクセスを無制限に許可します。これは実験目的でのみ使用してください。詳細については、IAM ユーザーガイド の「IAM ポリシー」を参照してください。
-
[Review] (確認) ページの [Role Name] (ロール名) に、ロールの名前を入力します (例:
my-demo-cloud9-instance-profile
)。 -
[ロールの作成] を選択します。
「Amazon EC2 コンソールを使用してインスタンスプロファイルをインスタンスにアタッチする」に進みます。
AWS CLI を使用してインスタンスプロファイルを作成する
注記
インスタンスプロファイルを含む IAM ロールがすでにある場合は、スキップして、AWS CLI を伴うインスタンスにインスタンスプロファイルを添付するに進みます。
このトピックでは、AWS アカウント の管理者レベルの認証情報を使用して AWS CLI を設定することをお勧めします。これが実行できない場合は、AWS アカウント 管理者にお問い合わせください。
注記
AWS マネージド一時認証情報を使用している場合は、AWS Cloud9 IDE のターミナルセッションを使用して、このセクションのコマンドの一部またはすべてを実行することはできません。AWS のセキュリティに関するベストプラクティスに対応するため、AWS マネージド一時認証情報は一部のコマンドの実行を許可しません。代わりに、AWS Command Line Interface (AWS CLI) の別のインストールから、これらのコマンドを実行できます。
-
インスタンスプロファイルの必須および 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" } ] }
-
ターミナルまたはコマンドプロンプトを使用して、このファイルを保存したディレクトリに切り替えます。
-
インスタンスプロファイルの 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
-
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 ポリシー」を参照してください。
-
インスタンスプロファイルを作成します。これを行うには、新しい IAM インスタンスプロファイルの名前を指定する IAM
create-instance-profile
コマンド (たとえばmy-demo-cloud9-instance-profile
) を実行します。aws iam create-instance-profile --instance-profile-name my-demo-cloud9-instance-profile
-
インスタンスプロファイルに 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 コンソールを使用してインスタンスプロファイルをインスタンスに添付する
-
https://console.aws.amazon.com/ec2/
でAmazon EC2 コンソールにサインインします。 このステップでは、AWS アカウント の管理者の認証情報を使用してサインインすることをお勧めします。これが実行できない場合は、AWS アカウント 管理者にお問い合わせください。
-
ナビゲーションバーで、環境用と一致する AWS リージョン がリージョンセレクターに表示されていることを確認します。例えば、米国東部 (オハイオ) リージョンで環境を作成した場合は、このリージョンセレクターで米国東部 (オハイオ)を選択します。
-
[実行中のインスタンス]リンク、またはナビゲーションペインで [インスタンス]を展開して、[インスタンス]を選択します。
-
インスタンスのリストで、環境名を含む [名前]を持つインスタンスを選択します。たとえば、環境名が
my-demo-environment
の場合は、my-demo-environmentを含む[名前]を持つインスタンスを選択します。 -
[アクション] メニューで、[セキュリティ]、[IAM ロールの変更] の順に選択します。
注記
インスタンスにロールをアタッチしていても、ロールにはインスタンスプロファイルが含まれています。
-
[IAM ロールの変更] ページの [IAM ロール] で、確認したロール、または前の手順で作成したロールの名前を選択し、[適用] を選択します。
-
環境に戻り、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) の別のインストールから、これらのコマンドを実行できます。
-
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
を環境の名前で置き換えます。 -
環境に戻り、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 にアクセスしているユーザーのタイプによって異なります。
ユーザーにプログラマチックアクセス権を付与するには、以下のいずれかのオプションを選択します。
プログラマチックアクセス権を必要とするユーザー | 目的 | 方法 |
---|---|---|
ワークフォースアイデンティティ (IAM アイデンティティセンターで管理されているユーザー) |
一時的な認証情報を使用して、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
をユーザーの名前に置き換えます。
表示される AccessKeyId
と SecretAccessKey
の値を安全な場所に保存します。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 ユーザーガイドの「クイック設定」を参照してください。
-
環境が開いている状態で、AWS Cloud9 IDE で新しいターミナルセッションをスタートします (まだスタートしていない場合)。新しいターミナルセッションを開始するには、メニューバーで、[Window (ウィンドウ)]、[New Terminal (新しいターミナル)]の順に選択します。
-
一度に 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=
-
前述の環境変数は、ターミナルセッションにおいてのみ有効になります。これらの環境変数をターミナルセッション間で利用できるようにするには、以下のように、それらをユーザー環境変数としてシェルプロファイルファイルに追加する必要があります。
-
IDE の[Environment (環境)]ウィンドウで歯車アイコンを選択し、[Show Home in Favorites (お気に入りのホームを表示する)]を選択します。このステップを繰り返して、[Show Hidden Files (隠しファイルを表示する)]も同様に選択します。
-
~/.bashrc
ファイルを開きます。 -
ファイルの末尾に次のコードを入力するか貼り付けます。これらのコマンドで、
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=
-
ファイルを保存します。
-
~/.bashrc
ファイルにこれらの新しい環境変数をロードします。. ~/.bashrc
-
環境から AWS のサービス を呼び出すことができるようになりました。AWS CLI または aws-shell を使用して AWS のサービス を呼び出すには、AWS CLI および aws-shell のサンプルを参照してください。コードから AWS のサービス を呼び出すには、他のチュートリアルとサンプルを参照してください。