当前位置: 首页 > 知识库问答 >
问题:

使用秘密密钥凭据调用AWS SDK API,而不是使用认知凭据

厉钊
2023-03-14

在AWS Xamarin SDK文档中,GetOpenIdTokenForDeveloperIdentity()的Amazon Cognito Identity API文档在其第二段中指出,“必须使用AWS开发人员凭据来调用此API。”

现在,总的想法是尽量不要泄露API机密

但是上面粗体提到的这段文字是否意味着我不能使用IAM角色和/或策略来调用这些API?这是否意味着我必须在应用程序源代码中包含accessKey和secretKey?

AWS提供了Cognito机制,通过该机制,我们可以通过

`credentials = new CognitoAWSCredentials ("IDENTITY_POOL_ID", "REGION_NAME");` 

无需直接使用开发人员凭据,如accesskey和secretkey等。

但是上面粗体提到的这段文字,是否意味着我不能使用通过认知获得的凭据,因为这些凭据不是用开发者凭据生成的?

想弄明白这种新的认知方式。

共有1个答案

令狐翰
2023-03-14

您可以使用IAM角色调用此API,与调用任何其他AWS sigv4 API的方式相同。本文的目的是强调,与其他Cognito unauth API(getId、getOpenIdToken、getCredetialsForIdentity)不同,您需要使用AWS凭据从服务器调用GetOpenIdTokenForDeveloperIdentity。这些凭据可以通过IAM用户或IAM角色获得。

编辑:

Cognito用于在客户端应用程序上销售凭据,例如:移动应用程序。通常,凭证是在与社交身份提供商联合后出售的,例如: Facebook、谷歌、亚马逊等。

引入了API GetOpenIdTokenForDeveloperIdid,允许您使用自己的身份验证系统与Cognito联合。如果没有自己的身份验证系统,则不应该使用此API。此API将从服务器端应用程序调用。当然,您可以使用Cognito在服务器端获取凭据并调用GetOpenIdTokenForDeveloperIdid,但这不是Cognito的目的。更简单的是在服务器端的IAM的帮助下使用凭据。

 类似资料:
  • 我正在使用C#的“Google. Apis. Bigquery. v2客户端库”。 我授权使用“服务帐户”搜索BigQuery(请参阅http://www.afterlogic.com/mailbee-net/docs/OAuth2GoogleServiceAccounts.html). 要创建X509证书,我使用Google开发者控制台中的p12密钥。然而,现在json键是默认的。我可以用它来代

  • 我正在遵循Dave Syer的基本Spring Boot OAuth2示例:https://github.com/dsyer/sparklr-boot/blob/master/src/main/java/demo/application.java 我错过了什么才能让它运转起来?

  • 使用AKV管理存储帐户:https://docs.microsoft.com/en-us/Azure/key-vault/key-vault-overview-storage-keys-powershell#manage-storage-account-keys 使用Azure Automation进行密钥循环:https://docs.microsoft.com/en-us/Azure/key-

  • 我正在尝试使用curl,使用accessKey和secretKey,将请求发布到AWS中的es集群。我已经通过postman(这里的详细信息)成功地做到了这一点,您可以在这里指定AWS凭据,但我希望通过curl实现这一点。邮递员可以自动生成你的卷发请求,但我得到的只是错误。 这是生成的curl请求和响应 身份证已被更改以保护无辜者。 我已经检查了我所有的钥匙和地区,就像我说的,这是通过邮递员工作的

  • 我遇到了许多API,它们为用户提供了一个API密钥和一个秘密。但我的问题是:两者之间有什么区别? 在我看来,一把钥匙就足够了。假设我有钥匙,只有我和服务器知道。我用这个键创建了一个HMAC哈希,并进行了一个API调用。在服务器上,我们再次创建HMAC哈希,并将其与发送的哈希进行比较。如果是相同的,则呼叫经过身份验证。 那为什么要用两把钥匙呢? 编辑:或者该API密钥用于查找API机密?