本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Windows容器使用gMSA
Amazon ECS 支持通过特殊 一种名为 组托管服务帐户 (gMSA)。
基于Windows的网络应用程序,如.NET应用程序,通常使用活动目录来 促进用户和服务之间的身份验证和授权管理。开发人员通常设计应用程序以与活动目录集成并运行 用于此目的的域联接服务器。因为Windows容器不能与域联接, 您必须配置Windows容器以使用gMSA运行。
使用gMSA运行的Windows容器依赖于其宿主 Amazon EC2 实例来检索
来自活动目录域控制程序的gMSA凭证,并将其提供给
容器实例。更多信息,请参阅 为Windows容器创建gMSA
Considerations
当对Windows容器使用gMSA时,应考虑以下事项:
-
当使用 Amazon ECS 优化的 Windows Server 2016 Full AMI 对于您的容器实例, 容器名称名称必须与在 凭证规范文件。要为容器指定名称,请使用
hostname
容器定义参数。如需了解更多信息, 看到 网络设置.
Prerequisites
以下是使用适用于Windows容器的gMSA功能的前提条件 Amazon ECS.
-
一个活动目录, Amazon ECS Windows容器实例可以加入。 Amazon ECS 支持以下内容:
-
AWS Directory Service,这是一个 AWS 托管的活动目录 Amazon EC2. 对于 更多信息,请参阅 开始使用受管理的MicrosoftAD 在 AWS Directory Service Administration Guide.
-
本地活动目录,只要 Amazon ECS Windows容器 实例可以加入域。更多信息,请参阅 直接连接.
-
-
活动目录中的现有gMSA帐户。更多信息,请参阅 为Windows容器创建gMSA
. -
的 Amazon ECS 托管的Windows容器实例 Amazon ECS 任务必须是域 加入活动目录,并成为活动目录安全 可以访问gMSA帐户的团体。
在上设置支持gMSA的Windows容器 Amazon ECS
Amazon ECS 使用包含用于传播的gMSA元数据的凭证规范文件
将gMSA帐户环境连接至Windows容器。您可以生成凭证规格
并在 dockerSecurityOptions
任务中的字段
定义。凭证规范文件不包含任何密钥。
以下是凭证规范文件的示例:
{
"CmsPlugins": [
"ActiveDirectory"
],
"DomainJoinConfig": {
"Sid": "S-1-5-21-2554468230-2647958158-2204241789",
"MachineAccountName": "WebApp01",
"Guid": "8665abd4-e947-4dd0-9a51-f8254943c90b",
"DnsTreeName": "example.com",
"DnsName": "example.com",
"NetBiosName": "example"
},
"ActiveDirectoryConfig": {
"GroupManagedServiceAccounts": [
{
"Name": "WebApp01",
"Scope": "example.com"
}
]
}
}
参考中的凭证规范文件 任务定义
Amazon ECS 支持以下方法参考
dockerSecurityOptions
任务定义字段。
Amazon S3 存储桶
将凭证规范添加到 Amazon S3 然后参考alirocumab
资源名称(ARN) Amazon S3 在 dockerSecurityOptions
任务定义字段。
{ "family": "", "executionRoleArn": "", "containerDefinitions": [ { "name": "", ... "dockerSecurityOptions": [ "credentialspec:arn:aws:s3:::
${BucketName}/${ObjectName}
" ], ... } ], ... }
您还必须将以下权限添加为在线策略 Amazon ECS 任务执行 IAM 角色,让您的任务能够访问 Amazon S3 桶。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor", "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::
{bucket_name}
", "arn:aws:s3:::{bucket_name}/{object}
" ] } ] }
SSM 参数存储参数
将凭证规范添加到 SSM 参数存储参数,然后
参考 SSM 参数存储参数
在 dockerSecurityOptions
任务定义字段。
{ "family": "", "executionRoleArn": "", "containerDefinitions": [ { "name": "", ... "dockerSecurityOptions": [ "credentialspec:arn:aws:ssm:
region
:111122223333
:parameter/parameter_name
" ], ... } ], ... }
您还必须将以下权限添加为在线策略 Amazon ECS 任务执行 IAM 角色,让您的任务能够访问 SSM 参数存储 参数。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:
region
:111122223333
:parameter/parameter_name
" ] } ] }
本地文件
在本地文件中填写凭证规范详细信息,在
的 dockerSecurityOptions
任务定义字段。
{ "family": "", "executionRoleArn": "", "containerDefinitions": [ { "name": "", ... "dockerSecurityOptions": [ "credentialspec:file://
CredentialSpecFile.json
" ], ... } ], ... }