

 AWS Cloud9 不再提供給新客戶。 AWS Cloud9 的現有客戶可以繼續正常使用該服務。[進一步了解](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS 服務 從 中的環境呼叫 AWS Cloud9
<a name="credentials"></a>

您可以從 AWS 服務 AWS Cloud9 開發環境呼叫 。例如，您可以執行下列動作：
+ 上傳和下載 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\$1\$1。如需詳細資訊，請參閱 [AWS CLI 和 aws-shell 範例](sample-aws-cli.md)、[AWS Command Line Interface 使用者指南](https://docs.aws.amazon.com/cli/latest/userguide/)及 [AWS 開發套件](https://aws.amazon.com/developer/tools/#sdk)。

每次 AWS CLI、 AWS CloudShell或您的程式碼呼叫 AWS 服務、 AWS CloudShell、 AWS CLI或您的程式碼時，都必須提供一組 AWS 存取登入資料與呼叫。這些登入資料將判斷呼叫端是否具備適當許可，能夠發出該次呼叫。如果憑證當中不包含適當許可，呼叫即會失敗。

為您的環境提供憑證有好幾種方法。下表說明其中一些方法。


****  

| 環境類型 | 方法 | 
| --- | --- | 
|  EC2  |  使用 AWS 受管臨時登入資料。 我們建議您針對 EC2 environment. AWS managed 臨時登入資料使用此方法，代表您管理 EC2 環境中的 AWS 存取登入資料，同時遵循 AWS 安全最佳實務。  **如果您使用的是 EC2 環境，您可以略過此主題其餘內容。這是因為 環境中已為您設定 AWS 受管臨時憑證。** 如需詳細資訊，請參閱 [AWS 受管臨時憑證](security-iam.md#auth-and-access-control-temporary-managed-credentials)。  | 
|  EC2  |  將 IAM 執行個體描述檔連接至執行個體。 只有在由於某些原因而無法使用 AWS 受管臨時登入資料時，才使用此方法。與 AWS 受管臨時登入資料類似，執行個體描述檔會代表您管理 AWS 存取登入資料。不過，您必須自行建立和管理執行個體描述檔並將其連接至 Amazon EC2 執行個體。 如需相關指示，請參閱「[建立及使用執行個體描述檔來管理暫時登入資料](#credentials-temporary)」。  | 
|  EC2 或 SSH  |  將您的永久 AWS 存取憑證存放在環境中。 相較於使用臨時 AWS 存取登入資料，此方法較不安全。不過，這是 SSH 環境唯一支援的方法。 如需說明，請參閱「[在環境中建立並存放永久存取登入資料](#credentials-permanent-create)」。  | 
|  EC2 或 SSH  |  將您的永久 AWS 存取登入資料直接插入您的程式碼。 我們不建議這種方法，因為它不遵循 AWS 安全最佳實務。 由於不建議採用此方法，本主題將不就其做介紹。  | 

## 建立及使用執行個體描述檔來管理臨時憑證
<a name="credentials-temporary"></a>

**注意**  
您無法將此程序用於 AWS Cloud9 SSH 開發環境。而應跳至[在環境中建立並存放永久存取登入資料](#credentials-permanent-create)。  
我們建議您使用 AWS 受管臨時憑證，而非執行個體描述檔。只有在由於某些原因而無法使用 AWS 受管臨時登入資料時，才遵循這些指示。如需詳細資訊，請參閱 [AWS 受管臨時憑證](security-iam.md#auth-and-access-control-temporary-managed-credentials)。

此程序會使用 IAM 和 Amazon EC2 建立 IAM 執行個體描述檔，並將其連接至與您的環境連線的 Amazon EC2 執行個體。此執行個體描述檔會代您管理臨時憑證。此程序假設您已在 AWS Cloud9建立環境。若要建立環境，請參閱[建立環境](create-environment.md)。

您可以使用 [IAM 及 Amazon EC2 主控台](#credentials-temporary-create-console)或 [AWS 命令列界面 (AWS CLI)](#credentials-temporary-create-cli) 完成上述作業。

### 使用 IAM 主控台建立執行個體描述檔
<a name="credentials-temporary-create-console"></a>

**注意**  
若您已有包含了執行個體描述檔的 IAM 角色，請跳至[使用 Amazon EC2 主控台將執行個體描述檔連接至執行個體](#credentials-temporary-attach-console)。

1. 登入 IAM 主控台，網址為 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam)。

   對於此步驟，建議您在 AWS 帳戶中使用管理員層級憑證來登入。如果您無法執行此操作，請洽詢您的 AWS 帳戶 管理員。

1. 在導覽列中，選擇**角色**。
**注意**  
您無法使用 IAM 主控台單獨建立執行個體描述檔，您必須建立一個包含執行個體描述檔的 IAM 角色。

1. 選擇建**立角色**。

1. 在已選擇 **AWS 服務** 的 **Select type of trusted entity** (選取信任的實體類型) 頁面上，針對 **Choose the service that will use this role** (選擇將使用此角色的服務) 選擇 **EC2**。

1. 從 **Select your use case** (選取您的使用案例) 選擇 **EC2**。

1. 選擇**下一步：許可**。

1. 在 **Attach permissions policies** (附加許可政策) 頁面的政策清單中，選取 **AdministratorAccess** 旁的方塊，然後選擇 **Next: Review** (下一步：檢閱)。
**注意**  
**AdministratorAccess** 政策允許不受限制地存取 中的所有 AWS 動作和資源 AWS 帳戶。使用它僅供試驗之用。如需詳細資訊，請參閱 *IAM 使用者指南*中的 [IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。

1. 在 **Review** (檢閱) 頁面的 **Role Name** (角色名稱) 中，輸入角色的名稱 (例如 `my-demo-cloud9-instance-profile`)。

1. 選擇**建立角色**。

跳至[使用 Amazon EC2 主控台將執行個體描述檔連接至執行個體](#credentials-temporary-attach-console)。

### 使用 建立執行個體描述檔 AWS CLI
<a name="credentials-temporary-create-cli"></a>

**注意**  
若您已有包含了執行個體描述檔的 IAM 角色，請跳至[使用 AWS CLI將執行個體描述檔連接至執行個體](#credentials-temporary-attach-cli)。  
針對本主題，建議您 AWS CLI 在 中使用管理員層級登入資料來設定 AWS 帳戶。如果您無法執行此操作，請洽詢您的 AWS 帳戶 管理員。

**注意**  
如果您使用的是[AWS 受管臨時憑證](security-iam.md#auth-and-access-control-temporary-managed-credentials)，則無法使用 IDE AWS Cloud9 中的終端機工作階段來執行本節中的部分或全部命令。為了解決 AWS 安全最佳實務， AWS 受管臨時登入資料不允許執行某些命令。反之，您可以從個別安裝的 AWS Command Line Interface () 執行這些命令AWS CLI。

1. 在 中 AWS 為執行個體描述檔所需的 IAM 角色定義信任關係。請建立含有以下內容的檔案，然後儲存該檔案 (例如，命名為 `my-demo-cloud9-instance-profile-role-trust.json`)。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "ec2.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 使用終端機或命令提示字元，切換到您剛儲存該檔案的所在目錄。

1. 為執行個體描述檔建立 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
   ```

1. 將 AWS 存取許可連接至執行個體描述檔 IAM 角色。若要這麼做，請執行 IAM `attach-role-policy` 命令。指定現有 IAM 角色的名稱，以及名為 之 AWS 受管政策的 Amazon Resource Name (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 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。

1. 建立執行個體描述檔。方法如下：執行 IAM `create-instance-profile` 命令，指定新的執行個體描述檔的名稱 (例如 `my-demo-cloud9-instance-profile`)。

   ```
   aws iam create-instance-profile --instance-profile-name my-demo-cloud9-instance-profile
   ```

1. 將 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建立執行個體描述檔](#credentials-temporary-create-cli)。

### 使用 Amazon EC2 主控台將執行個體描述檔連接至執行個體
<a name="credentials-temporary-attach-console"></a>

1. 請登入 Amazon EC2 主控抬，網址為 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2)。

   對於此步驟，建議您在 AWS 帳戶使用管理員層級憑證來登入。如果您無法執行此操作，請洽詢您的 AWS 帳戶 管理員。

1. 在導覽列中，確認區域選擇器所顯示的 與您環境的 AWS 區域 相符。例如，若您在美國東部 (俄亥俄) 區域建立了環境，請在這裡選擇區域選擇器中的 **US East (Ohio)** (美國東部 (俄亥俄))。

1. 選擇 **Running Instances** (運作中的執行個體) 連結，或從導覽窗格中展開 **Instances** (執行個體)，然後選擇 **Instances** (執行個體)。

1. 從執行個體清單中，選擇 **Name** (名稱) 中包含您環境名稱的執行個體。舉例來說，若您的環境名稱是 `my-demo-environment`，請選擇 **Name** (名稱) 包含 **my-demo-environment** 的執行個體。

1. 選擇 **Actions** (動作)、**Security** (安全性)、**Modify IAM role** (修改 IAM 角色)。
**注意**  
本操作雖是將角色連接至執行個體，但該角色包含了執行個體描述檔。

1. 在 **Modify IAM Role** (修改 IAM 角色) 頁面上，對於**IAM role** (IAM 角色)，選擇您在先前程序識別或建立的角色的名稱，然後選擇 **Apply** (套用)。

1. 回到環境中，使用 AWS CLI 執行 `aws configure`命令，或使用 AWS CloudShell 執行 `configure`命令。請勿對 **AWS Access Key ID** (AWS 存取金鑰 ID) 或 **AWS Secret Access Key** (AWS 私密存取金鑰) 指定任何值 (每次出現提示後直接按 `Enter`)。針對**預設區域名稱**，指定最 AWS 區域 接近您或您 AWS 資源所在的區域。例如，美國東部 (俄亥俄) 區域請指定 `us-east-2`。如需區域清單，請參閱 中的 [AWS 區域 和 端點](https://docs.aws.amazon.com/general/latest/gr/rande.html)*Amazon Web Services 一般參考*。選擇性指定**預設輸出格式**的值 (例如 `json`)。

您現在可以 AWS 服務 從環境開始呼叫 。若要使用 AWS CLI、 aws-shell或兩者來呼叫 AWS 服務，請參閱 [AWS CLI 和 aws-shell 範例](sample-aws-cli.md)。若要從程式碼呼叫 AWS 服務 ，請參閱我們其他的[教學和範例](tutorials.md)。

### 使用 將執行個體描述檔連接至執行個體 AWS CLI
<a name="credentials-temporary-attach-cli"></a>

**注意**  
如果您使用的是[AWS 受管臨時憑證](security-iam.md#auth-and-access-control-temporary-managed-credentials)，則無法使用 IDE AWS Cloud9 中的終端機工作階段來執行本節中的部分或全部命令。為了解決 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，您可以依照本例執行 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` 取代為環境的名稱。

1. 回到環境中，使用 AWS CLI 執行 `aws configure`命令，或使用 aws-shell執行 `configure`命令。請勿為 **AWS Access Key ID** (AWS 存取金鑰 ID) 或 **AWS Secret Access Key** (AWS 私密存取金鑰) 指定任何值。在其中每個提示之後按下 `Enter`。針對**預設區域名稱**，指定 AWS 區域 最接近您或您 AWS 資源所在的區域。例如，美國東部 (俄亥俄) 區域請指定 `us-east-2`。如需區域清單，請參閱《》中的[AWS 區域和端點](https://docs.aws.amazon.com/general/latest/gr/rande.html)*Amazon Web Services 一般參考*。選擇性指定**預設輸出格式**的值 (例如 `json`)。

您現在可以 AWS 服務 從環境開始呼叫 。若要使用 AWS CLI、 aws-shell或兩者來呼叫 AWS 服務，請參閱 [AWS CLI 和 aws-shell 範例](sample-aws-cli.md)。若要從程式碼呼叫 AWS 服務 ，請參閱我們其他的[教學和範例](tutorials.md)。

## 在環境中建立並存放永久存取憑證
<a name="credentials-permanent-create"></a>

**注意**  
如果您使用的是 an AWS Cloud9 EC2 開發環境，我們建議您使用 AWS 受管臨時憑證，而不是 AWS 永久存取憑證。若要使用 AWS 受管臨時憑證，請參閱 [AWS 受管臨時憑證](security-iam.md#auth-and-access-control-temporary-managed-credentials)。

在本節中，您會使用 AWS Identity and Access Management (IAM) 來產生一組永久登入資料。 AWS CLI、 aws-shell或您的程式碼可以在呼叫時使用這組登入資料 AWS 服務。此集包含 AWS 存取金鑰 ID 和 AWS 私密存取金鑰，這對於 中的使用者是唯一的 AWS 帳戶。如果您已有 AWS 存取金鑰 ID 和 AWS 私密存取金鑰，請記下這些登入資料，然後跳到 [環境中儲存永久存取登入](#credentials-permanent-create-store)資料。

您可以使用 [IAM 主控台](#credentials-permanent-create-console)或 [AWS CLI](#credentials-permanent-create-cli) 建立一組永久憑證。

### 授與程式設計存取權
<a name="credentials-permanent-create-console"></a>

如果使用者想要與 AWS 外部互動，則需要程式設計存取 AWS 管理主控台。授予程式設計存取權的方式取決於正在存取的使用者類型 AWS。

若要授予使用者程式設計存取權，請選擇下列其中一個選項。


****  

| 哪個使用者需要程式設計存取權？ | 到 | 根據 | 
| --- | --- | --- | 
| IAM | （建議） 使用主控台登入資料做為臨時登入資料，以簽署對 AWS CLI、 AWS SDKs程式設計請求。 AWS APIs |  請依照您要使用的介面所提供的指示操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloud9/latest/user-guide/credentials.html)  | 
|  人力資源身分 (IAM Identity Center 中管理的使用者)  | 使用暫時登入資料簽署對 AWS CLI、 AWS SDKs程式設計請求。 AWS APIs |  請依照您要使用的介面所提供的指示操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloud9/latest/user-guide/credentials.html)  | 
| IAM | 使用暫時登入資料簽署對 AWS CLI、 AWS SDKs程式設計請求。 AWS APIs | 遵循《IAM 使用者指南》中[將臨時登入資料與 AWS 資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)搭配使用中的指示。 | 
| IAM | (不建議使用)使用長期憑證簽署對 AWS CLI、 AWS SDKs程式設計請求。 AWS APIs |  請依照您要使用的介面所提供的指示操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloud9/latest/user-guide/credentials.html)  | 

### 使用 建立永久存取憑證 AWS CLI
<a name="credentials-permanent-create-cli"></a>

**注意**  
針對本節，建議您 AWS CLI 在 中使用管理員層級登入資料來設定 AWS 帳戶。如果您無法執行此操作，請洽詢您的 AWS 帳戶 管理員。

**注意**  
如果您使用的是[AWS 受管臨時憑證](security-iam.md#auth-and-access-control-temporary-managed-credentials)，則無法使用 IDE AWS Cloud9 中的終端機工作階段來執行本節中的部分或全部命令。為了解決 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)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey_CLIAPI)。

### 在環境中存放永久存取憑證
<a name="credentials-permanent-create-store"></a>

在此程序中，您會使用 AWS Cloud9 IDE 將永久 AWS 存取登入資料存放在您的環境中。此程序假設您已在 中建立環境 AWS Cloud9、開啟環境，並在 Web 瀏覽器中顯示 AWS Cloud9 IDE。如需詳細資訊，請參閱[建立環境](create-environment.md)及[開啟環境](open-environment.md)。

**注意**  
以下程序示範如何使用環境變數來存放永久存取登入資料。如果您的環境中aws-shell已安裝 AWS CLI 或 ，您可以使用 的 ** `aws configure` ** 命令 AWS CLI ，或 的 **`configure`**命令aws-shell來儲存永久存取憑證。若要取得指示，請參閱 *AWS Command Line Interface 使用者指南*中的[快速組態](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-quick-configuration)。

1. 在您的環境開啟的情況下，如果尚未啟動，請在 IDE AWS Cloud9 中啟動新的終端機工作階段。若要啟動新終端機工作階段，請在選單列上，選擇 **Window** (視窗)、**New Terminal** (新增終端機)。

1. 執行以下命令，分三次各執行一個命令，其設定的本機環境變數代表了您的永久存取登入資料。在這些命令中，在 之後`AWS_ACCESS_KEY_ID:`，輸入您的 AWS 存取金鑰 ID。在 之後`AWS_SECRET_ACCESS_KEY`，輸入您的 AWS 私密存取金鑰。在 之後`AWS_DEFAULT_REGION_ID`，輸入與您最 AWS 區域 接近 （或您偏好的） 相關聯的 AWS 區域 識別符 AWS 區域。如需可用識別符的清單，請參閱 中的 [AWS 區域 和 端點](https://docs.aws.amazon.com/general/latest/gr/rande.html)*Amazon Web Services 一般參考*。例如，若為美國東部 (俄亥俄)，您會使用 `us-east-2`。

   ```
   export AWS_ACCESS_KEY_ID=
   export AWS_SECRET_ACCESS_KEY=
   export AWS_DEFAULT_REGION=
   ```

1. 請注意，上述環境變數僅對目前的終端機工作階段有效。若要能夠跨終端機工作階段使用這些環境變數，您必須將其加入至 shell 描述檔做為使用者環境變數，如下所示。

   1. 在 IDE 的 **Environment** (環境) 視窗中選擇齒輪圖示，然後選擇 **Show Home in Favorites** (在我的最愛中顯示首頁)。重複此步驟並選擇 **Show Hidden Files** (顯示隱藏的檔案)。

   1. 開啟 `~/.bashrc` 檔案。

   1. 在檔案末尾處輸入或貼上以下程式碼。在這些命令中，在 之後`AWS_ACCESS_KEY_ID:`，輸入您的 AWS 存取金鑰 ID。在 之後`AWS_SECRET_ACCESS_KEY`，輸入您的 AWS 私密存取金鑰。在 之後`AWS_DEFAULT_REGION_ID`，輸入與您最 AWS 區域 接近 AWS 區域 （或您偏好的） 相關聯的識別符 AWS 區域。如需可用識別符的清單，請參閱 中的 [AWS 區域 和 端點](https://docs.aws.amazon.com/general/latest/gr/rande.html)*Amazon Web Services 一般參考*。例如，若為美國東部 (俄亥俄) 區域，您會使用 `us-east-2`。

      ```
      export AWS_ACCESS_KEY_ID=
      export AWS_SECRET_ACCESS_KEY=
      export AWS_DEFAULT_REGION=
      ```

   1. 儲存檔案。

   1. 援引 `~/.bashrc` 檔案以載入上述新的環境變數。

      ```
      . ~/.bashrc
      ```

您現在可以 AWS 服務 從環境開始呼叫 。若要使用 AWS CLI 或 aws-shell呼叫 AWS 服務，請參閱 [AWS CLI 和 aws-shell 範例](sample-aws-cli.md)。若要從程式碼呼叫 AWS 服務 ，請參閱我們其他的[教學和範例](tutorials.md)。