

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

# 使用 AWS 安全登入資料進行程式設計存取
<a name="security-creds-programmatic-access"></a>

我們建議您盡可能使用短期存取金鑰對 AWS 或 進行程式設計呼叫，以使用 AWS Command Line Interface 或 AWS Tools for PowerShell。不過，您也可以針對這些目的使用長期 AWS 存取金鑰。

當您建立長期存取金鑰時，會將存取金鑰 ID (例如 `AKIAIOSFODNN7EXAMPLE`) 和私密存取金鑰 (例如 `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`) 建立為一個集合。只有在您建立的時候才可使用私密存取金鑰進行下載。如果您沒有下載私密存取金鑰，或者遺失，則必須重新建立。

在許多情況下，您不需要永遠不會過期的長期存取金鑰 (就像您為 IAM 使用者建立存取金鑰時一樣)。反之，您可以建立 IAM 角色並產生暫時安全憑證。暫時安全憑證包含存取金鑰 ID 和私密存取金鑰，但其中也包含指出憑證何時到期的安全權杖。臨時安全資料過期之後即不再有效。如需詳細資訊，請參閱[長期存取金鑰的替代方案](#security-creds-alternatives-to-long-term-access-keys)

以 開頭的存取金鑰 IDs `AKIA`是 IAM 使用者或 AWS 帳戶 根使用者的長期存取金鑰。以 開頭的存取金鑰 IDs `ASIA`是您使用 AWS STS 操作建立的臨時憑證存取金鑰。

如果使用者想要與 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/IAM/latest/UserGuide/security-creds-programmatic-access.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/IAM/latest/UserGuide/security-creds-programmatic-access.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/IAM/latest/UserGuide/security-creds-programmatic-access.html)  | 

## 長期存取金鑰的替代方案
<a name="security-creds-alternatives-to-long-term-access-keys"></a>

對於許多常見使用案例，有可以替代長期存取金鑰的方案。為了提高帳戶安全性，請考慮以下事項。
+ **請勿在應用程式程式碼或程式碼儲存庫中嵌入長期存取金鑰和私密存取金鑰 – **反之，使用 AWS Secrets Manager或其他私密管理解決方案，因此您不必以純文字硬式編碼金鑰。然後，應用程式或用戶端可以在需要時擷取密碼。如需詳細資訊，請參閱*AWS Secrets Manager 《 使用者指南*》中的[什麼是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)。
+ **盡可能使用 IAM 角色產生暫時安全憑證** - 務必盡可能使用機制頒發暫時安全憑證，而非長期存取金鑰。暫時安全憑證更加安全，因為它們不會與使用者一起儲存，但會動態產生並在請求時提供給使用者。臨時安全憑證的生命週期有限，因此您不必對其進行管理或更新。提供暫時存取金鑰的機制包含 IAM 角色或 IAM Identity Center 使用者的身分驗證。對於在 外部執行的機器 AWS ，您可以使用 [AWS Identity and Access Management Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html)。
+ **針對 AWS Command Line Interface (AWS CLI) 或 `aws-shell` 使用長期存取金鑰的替代方案 –** 替代方案包含以下內容。
  + **使用主控台登入資料登入進行 AWS 本機開發**。您可以使用 第 2 AWS CLI 版和 `aws login`命令來產生短期登入資料，以使用您的主控台登入資料執行 AWS CLI 命令。若要進一步了解，請參閱*AWS Command Line Interface 《 使用者指南*》中的[登入以進行 AWS 本機開發](https://docs.aws.amazon.com//cli/latest/userguide/cli-authentication-user.html)。
  + **AWS CloudShell** 是以瀏覽器為基礎的預先驗證 Shell，您可以直接從 啟動 AWS 管理主控台。您可以透過 AWS 服務 您偏好的 shell (Bash、Powershell 或 Z shell) 對 執行 AWS CLI 命令。當您這樣做時，無需下載或安裝命令列工具。如需詳細資訊，請參閱《 AWS CloudShell使用者指南**》中的[什麼是AWS CloudShell ？](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)。
+ **請勿為需要存取應用程式的人類使用者建立長期存取金鑰，或 AWS 服務 –** IAM Identity Center 可以為您的外部 IdP 使用者產生臨時存取憑證以供其存取 AWS 服務。這樣就不需要在 IAM 中建立和管理長期憑證。在 IAM Identity Center 中，建立可授予外部 IdP 使用者存取權的 IAM Identity Center 許可集。然後將群組從 IAM Identity Center 指派給所選 中的許可集 AWS 帳戶。如需詳細資訊，請參閱*AWS IAM Identity Center 《 使用者指南*》中的[什麼是 AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)、[連接至外部身分提供者](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-idp.html)和[許可集](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html)。
+ **請勿在 AWS 運算服務中存放長期存取金鑰 –** 請改為指派 IAM 角色來運算資源。這會自動提供暫時憑證以授予存取權。例如，當您建立連接至 Amazon EC2 執行個體的執行個體描述檔時，您可以將 AWS 角色指派給執行個體，並將其提供給其所有應用程式。執行個體設定檔包含該角色，並且可讓 Amazon EC2 執行個體上執行的程式取得臨時憑證。若要進一步了解，請參閱[利用 IAM 角色來授予許可給 Amazon EC2 執行個體上執行的應用程式](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)。