The documentation you are viewing is for Dapr v1.7 which is an older version of Dapr. For up-to-date documentation, see the latest version.
AWS认证
所有使用AWS服务(如DynamoDB、SQS、S3等) 的Dapr组件都使用一套标准化的属性进行配置,这些属性描述如下。
这篇文章提供了关于(Dapr 使用的) AWS SDK如何处理证书的概述
以下属性都不是必需的,因为AWS SDK可以使用上面链接中描述的默认供应链进行配置。 测试组件配置并检查Dapr运行时的日志输出以确保组件正确初始化是很重要的。
region
。要连接到哪个AWS区域。 在某些情况下(例如在自托管模式下运行Dapr时),这个标志可以由环境变量AWS_REGION
提供。 Since Dapr sidecar injection doesn’t allow configuring environment variables on the Dapr sidecar, it is recommended to always set theregion
attribute in the component spec.endpoint
: The endpoint is normally handled internally by the AWS SDK. However, in some situations it might make sense to set it locally - for example if developing against DynamoDB Local.accessKey
: AWS Access key id.secretKey
: AWS Secret access key. Use together withaccessKey
to explicitly specify credentials.sessionToken
: AWS Session token. 与accessKey
和secretKey
一起使用。 当使用普通IAM用户的 access key和密钥时,通常不需要session token。
在组件清单文件中明确指定凭证的替代方法
在生产场景中,建议使用Kiam或Kube2iam等解决方案。 如果在 AWS EKS 上运行,你可以 将 IAM 角色链接到 Kubernetes 服务帐户,你的 pod 可以使用该帐户。
所有这些解决方案都解决了同样的问题:它们允许Dapr运行时进程(或sidecar)动态地重新获取凭证,因此不需要显式凭证。 这样做有几个好处,比如自动轮换访问密钥,避免必须管理密钥。
Kiam和Kube2IAM都是通过拦截对实例元数据服务的调用来工作的。
在AWS EC2上以单机模式运行时使用实例角色/配置文件
如果直接在AWS EC2实例上以单机模式运行Dapr,可以使用实例配置文件。 只需配置一个iam角色并将其附加到ec2实例的实例配置文件中,Dapr就能对AWS进行身份验证,而无需在Dapr组件清单中指定证书。
以单机模式在本地运行dapr时验证到AWS
当在单机模式下运行Dapr(或直接运行Dapr时)时,你可以选择像这样在进程中注入环境变量(在Linux/MacOS上)。
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
命令之前设置环境变量,不支持如上图所示的内联操作。
使用基于 AWS SSO 的配置文件时验证到AWS
如果你使用 AWS SSO进行身份验证,一些 AWS SDK(包括 Go SDK)还不支持此功能。 你可以使用一些实用程序来 “桥接 “基于 AWS SSO 的凭证和 “传统 “凭证,例如 AwsHelper 或 aws-sso-util。
如果使用AwsHelper,可以这样启动Dapr:
AWS_PROFILE=myprofile awshelper dapr run...
or
AWS_PROFILE=myprofile awshelper daprd...
在Windows上,环境变量需要在启动awshelper
命令之前进行设置,不支持如上所示的内联操作。
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.