您不应将 AWS 访问密钥和秘密存储在您的代码中。AWS 使用实例假定的 IAM 角色来获得直接解决此问题的权限。AWS 在部署时为 EC2 实例提供 IAM 角色。
使用 IAM 角色将权限委派给在 Amazon EC2 上运行的应用程序
http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-usingrole-ec2instance.html
编辑:AWS SDK 的当前版本鼓励您:
A) 使用 EC2 角色凭证(推荐)
当您将代码部署到 EC2 实例时,代码将自动在角色的上下文中运行。因此,您向分配给 EC2 实例的 IAM 角色添加权限。
B) 使用凭证文件
在生产中使用角色时,您可以在本地/本地机器上开发时使用此技术。这种方法也允许您使用不同的帐户。只需根据需要将更多配置文件部分添加到您的配置中。
- 在 c:\aws_service_credentials 中创建一个名为 credentials(无扩展名)的凭证文件
- 将以下内容添加到您的 app.config
<configuration>
<appSettings>
<add key="AWSProfileName" value="development"/>
<add key="AWSProfilesLocation" value="C:\aws_service_credentials\credentials"/>
</appSettings>
</configuration>
- 在正确的文件夹中添加您的凭证文件(例如,C:\aws_service_credentials\credentials)
[development]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
请参阅http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html以设置您的凭据。
确保在您的进程可以访问的文件夹中创建配置文件(例如,文件夹和文件的所有人权限)。如果您以管理员身份运行您的应用程序,这可能不是问题,但如果您将应用程序作为服务或后台应用程序运行。默认情况下,在 C:\ 中创建的文件夹不会打开以供所有人阅读,因此如果您缺少权限,请添加权限。
C)直接将凭据添加到您的应用配置(不推荐)
不建议使用这种方法,因为如果您的应用配置可以共享并且您的密钥被泄露。
<add key="AWSAccessKey" value="key"/>
<add key="AWSSecretKey" value="secret"/>
<add key="AWSRegion" value="eu-west-1" />