为 ASP.NET Core 2 应用程序指定 AWS 凭证
当您将应用程序部署到 Docker 容器时,有两种类型的凭证在发挥作用:部署凭证和实例凭证。
“将容器发布到 AWS”向导使用部署凭证在 Amazon ECS 中创建环境。这包括任务、服务、IAM 角色、Docker 容器存储库等,如果您选择的话,还包括负载均衡器。
实例(包括您的应用程序)使用实例凭证来访问不同的 AWS 服务。例如,如果您的 ASP.NET Core 2.0 应用程序读取和写入到 Amazon S3 对象,则该应用程序需要适当的权限。您可以根据环境使用不同的方法提供不同凭证。例如,您的 ASP.NET 内核e 2 应用程序可能面向开发和生产环境。您可以使用本地 Docker 实例和凭证进行开发,而在生产中使用定义的角色。
指定部署凭证
您在将容器发布到 AWS 向导中指定的 AWS 账户是向导在向 Amazon ECS 进行部署时将使用的 AWS 账户。账户配置文件必须具有访问 Amazon Elastic Compute Cloud、Amazon Elastic Container Service 和 AWS Identity and Access Management 的权限。
如果您注意到下拉列表中缺少某些选项,可能是因为您缺乏权限。例如,如果您为应用程序创建了一个集群但在将容器发布到 AWS 向导的集群页面中没有看到它。如果出现这种情况,请添加所缺的权限并重试该向导。
指定开发实例凭证
对于非生产环境,您可以在 appsettings.<environment>.json 文件中配置凭证。例如,要在 Visual Studio 2017 的 appsettings.Development.json 文件中配置凭证,请执行以下操作:
-
将 AWSSDK.Extensions.NETCore.Setup NuGet 软件包添加到您的项目中。
-
将 AWS 设置添加到 appsettings.Development.json。以下配置将设置
Profile和Region。{ "AWS": { "Profile": "local-test-profile", "Region": "us-west-2" } }
指定生产实例凭证
对于生产实例,建议使用 IAM 角色来控制应用程序(和服务)可以访问的内容。例如,要在 AWS 管理控制台中将 Amazon ECS 的 IAM 角色配置为具有对 Amazon Simple Storage Service 和 Amazon DynamoDB 的权限的服务主体,请执行以下操作:
-
登录 AWS 管理控制台,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在 IAM 控制台的导航窗格中,选择角色,然后选择创建角色。
-
选择 AWS 服务角色类型,然后选择 EC2 Container Service。
-
选择 EC2 Container Service Task (EC2 Container Service 任务) 使用案例。用例由服务定义以包含服务要求的信任策略。然后选择下一步:权限。
-
选择 AmazonS3FullAccess 和 AmazonDynamoDBFullAccess 权限策略。选中每个策略旁边的复选框,然后选择 Next: Review (下一步: 审核)。
-
对于Role name (角色名称),键入有助于识别此角色的作用的角色名称或角色名称后缀。角色名称在您的 AWS 账户内必须是唯一的。名称不区分大小写。例如,您无法同时创建名为
PRODROLE和prodrole的角色。由于多个单位可能引用该角色,角色创建完毕后无法编辑角色名称。 -
(可选) 对于 Role description,键入新角色的描述。
-
检查角色,然后选择创建角色。
您可以使用此角色作为将容器发布到 AWS 向导中 ECS 任务定义页面上的任务角色。
有关更多信息,请参阅使用基于服务的角色。