Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 验证应用程序以使用AWS服务的最佳方法?_Amazon Web Services - Fatal编程技术网

Amazon web services 验证应用程序以使用AWS服务的最佳方法?

Amazon web services 验证应用程序以使用AWS服务的最佳方法?,amazon-web-services,Amazon Web Services,假设我有一个内部应用程序,需要访问各种AWS服务,如S3、Cloudwatch等。处理此身份验证的正确方法是什么?我已经阅读了创建新iam角色,然后在应用程序运行的服务器上分发AWS密钥的建议。但如果钥匙被盗或以某种方式暴露,这不是很糟糕的做法吗?例如,轮换凭证也需要更多的工作。是否可以通过其他方式分配角色,或者这是正确的方式?在AWS中不运行应用程序时,分配角色或不可能分配角色不是更好吗?创建一个仅具有“编程访问”的IAM用户,这将为您提供密钥和密钥对。一般来说,您的应用程序可以使用一组凭据来

假设我有一个内部应用程序,需要访问各种AWS服务,如S3、Cloudwatch等。处理此身份验证的正确方法是什么?我已经阅读了创建新iam角色,然后在应用程序运行的服务器上分发AWS密钥的建议。但如果钥匙被盗或以某种方式暴露,这不是很糟糕的做法吗?例如,轮换凭证也需要更多的工作。是否可以通过其他方式分配角色,或者这是正确的方式?在AWS中不运行应用程序时,分配角色或不可能分配角色不是更好吗?

创建一个仅具有“编程访问”的IAM用户,这将为您提供密钥和密钥对。

一般来说,您的应用程序可以使用一组凭据来获取另一组更具特权的凭据。应用程序必须能够以某种方式进行身份验证,因此它需要一些基本形式的服务帐户凭据

一种方法是创建具有最低权限的IAM用户。此IAM用户可以担任特定的IAM服务角色,但不能担任其他角色。该服务角色实际上授予与S3、CloudWatch等交互的权限。您的应用程序配置有或以某种方式安全地检索与IAM用户关联的凭据。然后,您的应用程序使用这些调用STS并承担IAM服务角色,获取短期STS凭据(访问密钥、密钥和会话令牌)。您应该利用IAM角色的附加“外部ID”,作为另一个安全因素

应用程序还负责在现有凭据集过期之前获取新的凭据集。您可以通过多种方式做到这一点,例如,为您发出的每个请求使用新的STS凭据(这样它们就永远不会过期),或者只需注意凭据过期时间并刷新之前的内容


另外,请阅读。

如果您的应用程序正在Amazon EC2实例上运行,并且它是该实例上唯一的应用程序,那么:

  • 创建IAM角色
  • 为角色分配适当的权限
  • 将IAM角色分配给EC2实例
  • 实例上运行的任何软件都将自动访问访问AWS的凭据。这些凭证每6小时自动轮换一次
如果您没有在EC2实例上运行:

  • 创建IAM用户
  • 为用户分配适当的权限
  • 为用户生成凭据(访问密钥、密钥),并将其存储在应用程序使用的计算机上的凭据文件中
  • 实例上运行的任何软件都将自动访问这些凭据以访问AWS

内部AWS=>角色,外部AWS=>凭证(Idp,文件…)