我不完全确定这是否是我应该问的问题,所以请随时提交编辑。你知道吗
我正在开发一个桌面应用程序,我计划分发并使用amazonpolly阅读用户输入的文本。我很难理解如何安全地允许用户在不暴露访问密钥的情况下访问我们程序下的服务。你知道吗
我在前面的一个例子中看到,我应该创建一个使用资源的请求,在服务器中拥有访问和秘密访问密钥,并对请求进行签名。然后将其发送回桌面应用程序上的用户。你知道吗
如果这是正确的,有人能解释一下,并给我一个简单的例子,说明如何在python中实现这一点吗?非常感谢。:)
以下是我到目前为止想要下载的代码客户端:
from boto3 import client
import boto3
import StringIO
from contextlib import closing
polly = boto3.client(
'polly',
region_name='us-east-1',
aws_access_key_id='I_want_to_protect_this',
aws_secret_access_key='I_also_want_to_protect_this'
)
response = polly.synthesize_speech(
Text="Good Morning. My Name is Rajesh. I am Testing Polly AWS Service For Voice Application.",
OutputFormat="mp3",
VoiceId="Raveena")
print(response)
if "AudioStream" in response:
with closing(response["AudioStream"]) as stream:
data = stream.read()
fo = open("pollytest.mp3", "w+")
fo.write( data )
fo.close()
为人们提供访问AWS服务和存储在AWS上的资源的正确方法是采用客户机/服务器方法。你知道吗
在您的例子中,客户端是一个桌面应用程序,但它同样可以是一个移动应用程序或web应用程序。客户端基本上是不受信任的,不应该被授予访问AWS的任何凭据。你知道吗
服务器是一个运行在某处(通常在amazonec2或AWS Lambda上)的应用程序,它接收来自客户端的请求,应用业务逻辑(例如验证用户的身份并确定允许他们采取的操作)并调用AWS服务。你知道吗
然后有两种方法可以调用AWS:
服务器可以通过调用AWS Security Token Service并指定所需的权限和持续时间来生成临时AWS凭证。STS将返回一组具有所需权限的限时凭证。客户机应用程序可以使用这些凭证来调用AWS服务(例如,根据您的代码示例,amazonpolly)。你知道吗
通过这种方式,客户端代码中不存储任何凭据,服务器控制是否允许客户端访问AWS、可以使用哪些API调用以及应该授予访问权限的时间。你知道吗
相关问题 更多 >
编程相关推荐