The documentation you are viewing is for Dapr v1.13 which is an older version of Dapr. For up-to-date documentation, see the latest version.
AWS 认证
所有使用 AWS 服务(如DynamoDB、SQS、S3等) 的 Dapr 组件都使用一套标准化的属性通过 AWS SDK 进行配置。 了解有关 AWS SDK 如何处理凭据的更多信息。
由于您可以使用默认提供程序链配置 AWS SDK,因此以下所有属性都是可选的。 测试组件配置并检查 Dapr 运行时的日志输出,以确保组件正确初始化。
属性 | 说明 |
---|---|
region |
要连接到哪个 AWS 区域。 在某些情况下(例如在自托管模式下运行Dapr时),这个标志可以由环境变量AWS_REGION 提供。 由于Dapr sidecar注入不允许在Dapr sidecar上配置环境变量,建议始终在组件规范中设置region 属性。 |
endpoint |
终端节点通常由 AWS 开发工具包在内部处理。 然而,在某些情况下,将其设置为本地可能是有意义的 - 例如,如果在开发时使用DynamoDB本地版。 |
accessKey |
AWS Access key id. |
secretKey |
AWS Secret access key. 与accessKey 一起使用,明确指定证书。 |
sessionToken |
AWS Session token. 与 accessKey 和 secretKey 一起使用。 当使用普通IAM用户的 access key和密钥时,通常不需要session token。 |
重要
在您正在使用的组件规范的定义中不能提供AWS访问密钥、秘密密钥和令牌:
- 当在 EKS(AWS Kubernetes)上运行 Dapr sidecar (
daprd
) 与您的应用程序时 - If using a node/pod that has already been attached to an IAM policy defining access to AWS resources
在组件清单文件中明确指定凭证的替代方法
在生产方案中,建议使用以下解决方案:
如果在AWS EKS上运行,您可以将IAM角色链接到Kubernetes服务账户,您的pod可以使用该角色。
所有这些解决方案都解决了同样的问题:它们允许Dapr运行时进程(或sidecar)动态地重新获取凭证,因此不需要显式凭证。 这样做有几个好处,比如自动轮换访问密钥,避免必须管理密钥。
Kiam和Kube2IAM都通过拦截对实例元数据服务的调用来工作。
在 AWS EC2 上以单机模式运行时使用实例角色/配置文件
如果直接在AWS EC2实例上以单机模式运行Dapr,可以使用实例配置文件。
- 配置 IAM 角色。
- 将其附加到 EC2 实例的实例配置文件。
Dapr 然后在 Dapr 组件清单中不指定凭据的情况下对 AWS 进行身份验证。
以单机模式在本地运行 dapr 时验证到 AWS
当在单机模式下运行Dapr(或直接运行Dapr时)时,你可以选择像这样在进程中注入环境变量,就像以下示例一样:
FOO=bar daprd --app-id myapp
如果你在本地有配置的名为AWS的配置文件,您可以通过指定"AWS_PROFILE"环境变量来告诉Dapr(或Dapr运行时)要使用哪个配置文件:
AWS_PROFILE=myprofile dapr run...
or
AWS_PROFILE=myprofile daprd...
您可以使用任何支持的环境变量来配置 Dapr。
在Windows上,在启动dapr
或daprd
命令之前,需要先设置环境变量,不支持像在Linux/MacOS中内联操作。
如果使用基于 AWS SSO 的配置文件,则向 AWS 进行身份验证
如果你使用AWS SSO进行AWS身份验证,一些AWS SDK(包括Go SDK)尚不支持此功能。 您可以使用多种实用程序来“弥合”基于 AWS SSO 的凭证和“传统”凭证之间的差距,例如:
如果使用AwsHelper,可以这样启动Dapr:
AWS_PROFILE=myprofile awshelper dapr run...
or
AWS_PROFILE=myprofile awshelper daprd...
在Windows上,在启动awshelper
命令之前需要设置环境变量,不支持像在Linux/MacOS中内联操作。
下一步
参考 AWS 组件规格 >>相关链接
了解有关 AWS SDK(Dapr 使用的 SDK)如何处理凭据 的更多信息。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.