使用密钥凭证与使用 Cognito 凭证调用 AWS 开发工具包 API
To call AWS SDK APIs using secret key credentials versus using cognito credentials
在 AWS Xamarin SDK 文档中,GetOpenIdTokenForDeveloperIdentity()
的 Amazon Cognito Identity API documentation 在其第二段中表示“您必须使用 AWS 开发人员凭据来调用它API."
现在,一般的想法是尽量不要在源代码中公开 API 秘密和密钥,尤其是在有其他可用机制的情况下。 AWS提供了IAM机制,让我们可以代入一个角色,然后我们可以定义这个角色可以代入哪些权限。
但是上面以粗体显示的文本是否意味着我不能使用 IAM 角色 and/or 策略来调用那些 API?这是否意味着我必须在我的应用程序源代码中包含我的 accessKey 和 secretKey?
编辑:
AWS 提供了 Cognito 机制,我们可以通过该机制通过
请求临时凭证
`credentials = new CognitoAWSCredentials ("IDENTITY_POOL_ID", "REGION_NAME");`
不直接使用 accesskey 和 secretkey 等开发人员凭据
但是上面以粗体显示的文本是否意味着我不能使用通过 cognito 获得的凭据,因为这些凭据不是使用开发人员凭据生成的?
试图弄清楚这个新的认知问题。
您可以使用 IAM 角色来调用此 API,就像您调用任何其他 AWS sigv4 API 一样。本文的目的是强调与其他 Cognito unauth APIs(getId、getOpenIdToken、getCredetialsForIdentity)不同,您需要从您的服务器使用 AWS 凭证调用 GetOpenIdTokenForDeveloperIdentity。这些凭证可以通过 IAM 用户或 IAM 角色获得。
编辑:
Cognito 用于在客户端应用程序上出售凭据,例如:移动应用程序。通常在与社交身份提供商联合后出售凭据,例如:Facebook、google、亚马逊等
API 'GetOpenIdTokenForDeveloperIdentity' 的引入是为了让您可以使用自己的身份验证系统与 Cognito 联合。如果您没有自己的身份验证系统,则不应使用此 API。此 API 旨在从您的服务器端应用程序调用。当然,您可以使用 Cognito 在服务器端获取凭据并调用 GetOpenIdTokenForDeveloperIdentity,但这不是 Cognito 的目的。更简单的方法是在服务器端借助 IAM 使用凭据。
在 AWS Xamarin SDK 文档中,GetOpenIdTokenForDeveloperIdentity()
的 Amazon Cognito Identity API documentation 在其第二段中表示“您必须使用 AWS 开发人员凭据来调用它API."
现在,一般的想法是尽量不要在源代码中公开 API 秘密和密钥,尤其是在有其他可用机制的情况下。 AWS提供了IAM机制,让我们可以代入一个角色,然后我们可以定义这个角色可以代入哪些权限。
但是上面以粗体显示的文本是否意味着我不能使用 IAM 角色 and/or 策略来调用那些 API?这是否意味着我必须在我的应用程序源代码中包含我的 accessKey 和 secretKey?
编辑:
AWS 提供了 Cognito 机制,我们可以通过该机制通过
请求临时凭证`credentials = new CognitoAWSCredentials ("IDENTITY_POOL_ID", "REGION_NAME");`
不直接使用 accesskey 和 secretkey 等开发人员凭据
但是上面以粗体显示的文本是否意味着我不能使用通过 cognito 获得的凭据,因为这些凭据不是使用开发人员凭据生成的?
试图弄清楚这个新的认知问题。
您可以使用 IAM 角色来调用此 API,就像您调用任何其他 AWS sigv4 API 一样。本文的目的是强调与其他 Cognito unauth APIs(getId、getOpenIdToken、getCredetialsForIdentity)不同,您需要从您的服务器使用 AWS 凭证调用 GetOpenIdTokenForDeveloperIdentity。这些凭证可以通过 IAM 用户或 IAM 角色获得。
编辑:
Cognito 用于在客户端应用程序上出售凭据,例如:移动应用程序。通常在与社交身份提供商联合后出售凭据,例如:Facebook、google、亚马逊等
API 'GetOpenIdTokenForDeveloperIdentity' 的引入是为了让您可以使用自己的身份验证系统与 Cognito 联合。如果您没有自己的身份验证系统,则不应使用此 API。此 API 旨在从您的服务器端应用程序调用。当然,您可以使用 Cognito 在服务器端获取凭据并调用 GetOpenIdTokenForDeveloperIdentity,但这不是 Cognito 的目的。更简单的方法是在服务器端借助 IAM 使用凭据。