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
Amazon web services 从java连接到AWS RDS而不公开密码_Amazon Web Services_Spring Data Jpa_Amazon Rds_Aws Sdk Java 2.0 - Fatal编程技术网

Amazon web services 从java连接到AWS RDS而不公开密码

Amazon web services 从java连接到AWS RDS而不公开密码,amazon-web-services,spring-data-jpa,amazon-rds,aws-sdk-java-2.0,Amazon Web Services,Spring Data Jpa,Amazon Rds,Aws Sdk Java 2.0,我能够像其他数据库连接一样成功地连接到RDS。 我使用SpringJPA数据(存储库)在PostgresDB上执行CRUD操作。 目前,我在属性文件中提供了db url和凭证 spring: datasource: url: jdbc:postgresql://<rds-endpoint>:5432/<dbschema> username: <dbuser> password: <dbpassword> spring:

我能够像其他数据库连接一样成功地连接到RDS。 我使用SpringJPA数据(存储库)在PostgresDB上执行CRUD操作。 目前,我在属性文件中提供了db url和凭证

spring:
  datasource:
    url: jdbc:postgresql://<rds-endpoint>:5432/<dbschema>
    username: <dbuser>
    password: <dbpassword>
spring:
数据源:
url:jdbc:postgresql://:5432/
用户名:
密码:
但是,在连接到生产或试生产时,这不是一个选项。 这里最好的做法是什么。 AWS是否提供任何内置机制来从端点读取这些详细信息,比如访问S3


我的目的不是公开密码。

您可以选择以下几个选项:

  • 使用最近发布的
  • 使用Systems Manager参数存储来存储密码
  • 使用Secrets Manager存储密码并自动旋转凭据
  • 对于2和3,使用PropertyPlaceholderConfiguration和AWSSimpleSystemsManagement客户端(GetParameter请求)在Spring中启动应用程序时查找密码。到SecretsManager,在代码中保留单个接口以访问参数

    IAM凭据更安全,因为:

  • 如果使用EC2实例配置文件,对数据库的访问将使用短期临时凭据
  • 如果不是在EC2上,则可以生成短期身份验证令牌
  • 密码未存储在您的配置中
  • 如果您有单独的数据库团队,他们可以独立于应用程序用户管理访问
  • 可以通过IAM删除访问权限

  • 您可以选择以下几个选项:

  • 使用最近发布的
  • 使用Systems Manager参数存储来存储密码
  • 使用Secrets Manager存储密码并自动旋转凭据
  • 对于2和3,使用PropertyPlaceholderConfiguration和AWSSimpleSystemsManagement客户端(GetParameter请求)在Spring中启动应用程序时查找密码。到SecretsManager,在代码中保留单个接口以访问参数

    IAM凭据更安全,因为:

  • 如果使用EC2实例配置文件,对数据库的访问将使用短期临时凭据
  • 如果不是在EC2上,则可以生成短期身份验证令牌
  • 密码未存储在您的配置中
  • 如果您有单独的数据库团队,他们可以独立于应用程序用户管理访问
  • 可以通过IAM删除访问权限

  • 我发现的另一个通用选项是使用 ()


    RDS特定的解决方案是使用IAMDBAuth连接到,我发现另一个通用选项是使用 ()


    RDS特定的解决方案是使用IAMDBAuth连接到,使用角色。例如,如果您的程序使用EC2,请创建一个角色并授予RDSUsing角色权限。例如,如果您的程序使用EC2,请创建角色并授予RDS权限