什么是 AWS IAM?如何使用 IAM 数据库身份验证连接到 Amazon RDS(上)

驾驭云服务的安全环境可能很复杂,但 AWS IAM 为安全访问管理提供了强大的框架。在本文中,我们将探讨什么是 AWS Identity and Access Management (IAM) 以及它如何增强安全性。我们还将提供有关使用 IAM 连接到 Amazon Relational Database Service (RDS) 进行数据库身份验证的分步指南,确保您的数据库交互既安全又简化。

dbForge Studio for MySQL是一款专业的数据库管理、开发软件,它能够使MySQL开发人员和管理人员在一个方便的环境中与他人一起完成创建和执行查询,开发和调试MySQL程序,自动化管理MySQL数据库对象等工作。 在本文中,我们将使用该工具进行演示~

1.什么是 IAM? AWS IAM 的优势
1.1AWS IAM 的工作原理
1.2AWS IAM 的组件
1.3身份管理的特点
1.4MariaDB、MySQL 和 PostgreSQL 的 IAM 身份验证的限制
2.如何设置 IAM 数据库身份验证
2.1在 Amazon RDS 中创建 MySQL 数据库实例
2.1.1在数据库上启用 IAM DB 身份验证
2.1.2创建使用 AWS 身份验证令牌的数据库用户帐户
2.2 创建 IAM 策略
2.3 创建 IAM 角色
3.如何使用 dbForge Studio for MySQL 连接到 AWS RDS
3.1步骤 1:生成 IAM 身份验证令牌以识别 IAM 角色
3.2步骤 2:使用 dbForge Studio for MySQL 连接到 AWS RDS 实例
4.概括

dbForge Studio for MySQL 下载(qun:765665608)icon-default.png?t=N7T8https://www.evget.com/product/1708/download

什么是 IAM?

IAM(即身份和访问管理)是 Amazon Web Services (AWS) 提供的一项 Web 服务,可帮助您安全地控制对 AWS 资源的访问。它允许您管理用户、安全凭证(例如访问密钥)以及控制用户和应用程序可以访问哪些 AWS 资源的权限。

简而言之,IAM 身份验证通过身份验证令牌启用数据库连接,该身份验证令牌是使用与特定角色或用户关联的 IAM 策略生成的。身份验证令牌的有效期为 15 分钟。

什么是 IAM?

AWS IAM 的优势

IAM 对于管理 AWS 环境的安全性至关重要。它允许对谁可以访问哪些资源、在什么条件下以及使用什么权限进行精细控制。这不仅对于安全的系统架构很重要,而且对于遵守法规要求也很重要。IAM 服务免费提供,并在您的整个 AWS 账户中实施。AWS IAM 的其他优势包括:

  • 多重身份验证 (MFA): AWS IAM 允许您通过要求用户提供密码和第二个身份验证因素来增强安全性,从而显着降低未经授权访问的可能性。
  • 角色和临时凭据:您可以将角色分配给自己组织内的用户和应用程序或第三方帐户的用户。这样,您可以授予临时权限,仅在所需的时间内限制访问。
  • 联合访问:借助 AWS IAM,您可以允许已在其他位置(例如公司目录中)拥有密码的用户使用该身份访问 AWS 管理控制台或调用 AWS API,而无需 IAM 用户凭证。
  • 身份联合:您可以将 IAM 与外部身份提供商(例如 Active Directory)或任何支持 SAML 2.0 的提供商连接。这样就无需为需要访问 AWS 环境的每个实体创建单独的 IAM 用户。
  • 与 AWS 服务集成: IAM 与所有 AWS 服务集成,因此您可以定义角色和权限来控制对 AWS 上运行的任何服务或应用程序的访问。
  • 默认安全性:在遵循“最小权限”的安全原则明确授予权限之前,新用户无法访问 AWS 资源。
AWS IAM 的工作原理

IAM 提供控制 AWS 账户的身份验证和授权所需的基础设施。

最初,当个人或应用程序尝试访问 AWS 时,他们需要通过提供登录详细信息来证明自己的身份。此步骤称为身份验证,涉及根据 AWS 识别的身份验证凭证,例如 IAM 用户、IAM 角色、来自外部身份提供商的联合用户或使用 AWS 安全凭证配置的应用程序。

身份验证成功后,实体会寻求使用 AWS 资源的许可。这就是授权发挥作用的地方。在这个过程中,AWS 评估是否以及如何允许经过身份验证的身份与特定服务或资源进行交互。例如,登录 AWS 管理控制台后,您不会立即与任何 AWS 服务交互。但是,一旦您导航到特定服务,授权检查就会根据适用的策略确定您的身份是否具有使用该服务所需的权限。这些授权请求可以由您的 AWS 账户内的委托人或您信任的其他 AWS 账户发出。

一旦授权得到确认,该身份就可以在AWS环境中执行各种任务。这些任务的范围可能包括在 Amazon EC2 中启动实例、调整 IAM 组配置以及管理 S3 存储桶的生命周期,具体取决于授予的权限。

AWS IAM 的组件

AWS Identity and Access Management (IAM) 由多个关键组件组成,这些组件协同工作以安全地管理对 AWS 服务和资源的访问。AWS IAM 的关键组件包括:

IAM用户

用户是在 IAM 中创建的个人身份,每个身份都有其独特的一组凭证。这些凭证可用于在与 AWS 服务交互时对真人或应用程序进行身份验证。每个用户都可以被授予特定的权限来控制他们可以在 AWS 中执行哪些操作。这种粒度确保每个用户都按照最小权限原则进行操作,仅访问其角色所需的资源。

IAM 组

组作为用户的集合,简化了权限分配过程。您可以创建一个组,向该组应用必要的权限,然后添加用户,而不是单独将策略附加到每个用户。分配给组的任何权限都会自动应用于该组内的所有用户。这不仅简化了用户权限的管理,而且还可以更轻松地同时更新多个用户的权限。

IAM 角色

IAM 中的角色旨在委派特定任务的权限。与用户不同,角色没有一组永久的凭据。相反,角色提供可由受信任实体(例如 AWS 服务、应用程序或来自不同 AWS 账户的用户)承担的临时安全凭证。当应用程序需要代表您在 AWS 中执行操作或当您需要临时向其他 AWS 账户的用户授予访问权限时,这特别有用。

IAM 政策

策略是定义 IAM 内权限的文档。这些文档以 JSON 编写,指定用户、组或角色允许或拒绝的操作。可以微调策略来控制对特定 AWS 服务或资源的访问,并且可以包括何时以及如何应用权限的条件。这种详细的控制级别对于保护资源和确保用户只能执行履行其工作职责所需的操作至关重要。

身份管理的特点
  • 细化权限。IAM 允许组织为用户、组、角色和资源分配精细的权限,从而精确控制谁可以执行哪些操作。
  • 多重身份验证 (MFA)。IAM 支持 MFA,在用户名和密码之上添加额外的安全层。
  • 身份联合。IAM 允许身份联合,允许用户使用外部身份提供商而不是 IAM 凭证进行身份验证。这有利于单点登录 (SSO) 功能,使用户只需登录一次即可访问多个 AWS 服务。
  • 跨账户访问的角色。可以创建角色来将权限委托给需要代表您执行操作的用户、应用程序或服务。此功能对于允许用户从一个 AWS 账户访问另一 AWS 账户中的资源特别有用。
  • 政策模拟器。IAM 包含一个策略模拟器工具,可帮助管理员了解和测试其权限策略的效果,确保它们在上线前按预期工作。
  • 访问顾问。IAM 访问顾问显示授予用户的服务权限以及上次访问这些服务的时间,从而提供根据实际使用情况收紧权限的见解。
  • 访问分析器。此功能有助于识别组织和账户中与外部实体共享的资源,例如 S3 存储桶或 IAM 角色。
  • 可定制的密码轮换策略。管理员可以强制执行密码复杂性要求和轮换策略,从而提高帐户安全性。
  • 符合 PCI DSS。支付卡行业数据安全标准 (PCI DSS) 代表了一组要求,旨在确保所有处理、存储或传输信用卡信息的公司维持安全的环境。IAM 遵守此标准。
MariaDB、MySQL 和 PostgreSQL 的 IAM 身份验证的限制

连接限制:如果您的应用程序每秒需要超过 200 个新连接,则 IAM 数据库身份验证可能不适合。

身份验证令牌大小注意事项:IAM 数据库身份验证令牌的大小受多种因素影响,包括 IAM 标签的数量、IAM 服务策略的具体情况、ARN(Amazon 资源名称)的长度以及其他相关的 IAM 和数据库属性。虽然此令牌的最小大小通常约为 1 KB,但根据这些因素,它可能会更大。验证您的数据库驱动程序(例如 ODBC)和您使用的任何工具是否可以不受限制地处理令牌的大小非常重要。如果令牌被截断,它将使其对于身份验证过程无效,因为数据库和 IAM 将无法验证它。

SSL/TLS 要求:IAM 数据库身份验证需要与数据库的 SSL 连接。您必须确保您的数据库连接配置为使用 SSL,否则身份验证过程将失败。

PostgreSQL 中的身份验证优先级:对于运行 PostgreSQL 的实例,如果rds_iam角色与用户(包括 RDS 主用户)关联,则 IAM 身份验证将优先于密码身份验证。因此,该用户必须作为 IAM 用户进行身份验证。这意味着一旦为用户启用 IAM 身份验证,您必须使用 IAM 方法登录,因为密码验证将不再适用于该用户。

IAM 和 Kerberos 身份验证的排他性:在 Amazon RDS for PostgreSQL 上,存在阻止同时使用 IAM 和 Kerberos 身份验证方法的限制。如果启用 IAM 身份验证,则无法使用 Kerberos,反之亦然。这种排他性要求在为 PostgreSQL 配置 RDS 实例时在两种身份验证方法之间进行选择。

IAM 身份验证和复制:对于 Amazon RDS 上的 PostgreSQL,IAM 身份验证无法用于建立复制连接。这意味着,对于任何需要数据库复制的操作,您将需要依靠传统的密码身份验证或其他支持的方法(而不是 IAM)来设置和管理复制流程。

区域可用性:IAM 数据库身份验证仅在某些 AWS 区域可用,因此您需要确保部署 RDS 实例的区域支持它。

AWS RDS 版本:仅与 AWS RDS 平台兼容的特定 MySQL 版本支持 IAM 身份验证。您需要验证您的 MySQL 版本是否支持 IAM 身份验证。

二、如何设置 IAM 数据库身份验证

2.1创建 IAM 数据库

首先,登录 AWS 管理控制台。然后导航到 RDS 仪表板,选择要在其中创建数据库的 AWS 区域,然后单击创建数据库

创建 IAM 数据库

或者,您可以从“数据库”部分创建数据库。

如何创建 IAM 数据库

将打开“创建 数据库” 页面。单击“轻松创建” ,然后在 “配置”中选择 “MySQL”

创建 Amazon RDS 数据库

接下来,对于 数据库实例大小,选择免费层。对于 数据库实例标识符,输入所需的数据库标识符。对于 Master username,输入主用户的名称,或保留默认名称。

要让数据库自动创建主密码,请选择自动生成密码选项。如果您希望设置自己的主密码,请确保未选择“自动生成密码”选项,然后在“主密码”“确认主密码”字段中输入您选择的密码。

配置 AWS RDS 数据库的创建

完成后,单击创建数据库。新创建的数据库将出现在数据库列表中。请注意,新数据库最多可能需要 20 分钟才能可用。

要了解有关如何在 Amazon RDS 上部署 MySQL 数据库实例的更多信息,请参阅连接到 Amazon RDS MySQL 数据库。

2.1.1在数据库上启用 IAM DB 身份验证

现在我们已经创建了一个新数据库,我们需要在其上启用 IAM 数据库身份验证。

  1. 在导航窗格中,选择数据库
  2. 选择您想要启用 IAM 身份验证的数据库实例。
  3. 单击“修改”

在数据库上启用 IAM DB 身份验证

4.将打开“修改数据库实例”页面。向下滚动到数据库身份验证部分,然后单击选择密码和 IAM 数据库身份验证

启用密码和 IAM 数据库身份验证

2.1.2创建使用 AWS 身份验证令牌的数据库用户帐户

运行以下 SQL 命令来创建使用 AWS IAM 身份验证令牌的新用户。

CREATE USER 'new_user'@'%' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';

替换new_user为您想要的用户名。

2.2创建 IAM 策略

现在,您需要创建一个将数据库用户映射到 IAM 角色的 IAM 策略。为此,请导航至身份和访问管理 (IAM)。然后,在导航窗格中选择策略并单击创建策略。

创建 IAM 策略

将打开“创建 策略”页面。转到JSON选项卡以输入策略。

在 AWS Web 控制台中创建 IAM 策略页面

上图中显示的策略示例包含单个语句,其结构如下:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "rds-db:connect",
"Resource": "arn:aws:rds-db:region:account-id:dbuser:db-instance-identifier/database-username"
}
]
}

它由以下元素组成:

作用:指定Allow授予对数据库的访问权限。如果未明确指定访问,则默认情况下会拒绝访问。

操作:指定允许连接到数据库。rds-db:connect

资源:定义唯一标识特定数据库上的单个数据库账户的 Amazon 资源名称 (ARN)。

region将、、和替换为您的实际 AWS 区域、您的 AWS 账户 ID、您的 RDS 实例标识符以及您想要映射到 IAM 角色的数据库用户名。account-iddb-instance-identifierdatabase-username

完成后,单击“下一步”

查看并创建 IAM 政策

在下一页上,为您的策略指定一个有意义的名称和描述。然后,单击“创建策略”进行保存。

由于本文篇幅较长,继续浏览,请跳转至下一章,《什么是 AWS IAM?如何使用 IAM 数据库身份验证连接到 Amazon RDS(下)》也欢迎在评论区发表你的想法 一起交流~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/216785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu 20.04 server 安装 zabbix

ubuntu 20.04 server 安装 zabbix 参考文档 https://www.yuque.com/fenghuo-tbnd9/ffmkvs?# zabbix没用过,用过prometheus, 因为现在很多应用都支持直接接入prometheus监控, 而且大部分语言都都有sdk支持, 可以直接接入自己的…

lightdb 23.4 支持pivot行转列

前言 Lightdb-x支持行转列、列转行功能: pivot支持的语法如下: pivot支持项测试 pivot测试 create table hs_pivot(name varchar(40),course varchar(100),score int); insert into hs_pivot values(‘zhangsan’,‘chinese’,90); insert into h…

香港高才通计划申请被拒了?很可能是因为这五个原因!

香港高才通计划申请被拒了?很可能是因为这五个原因! 据统计,截止今年10月31日,香港各项输入人才计划共收到超过18万宗申请,超过11万宗已被批准,已有7万人到港。其中,高才通计划一共收到约55,000…

Java基础语法之访问修饰限定符

private 表示私有的,只能在同一个包中的同一个类使用 像这样就是在同一个包中的不同类用了private修饰的变量,这是非法的,那到底该如何给a赋值呢?可以在定义时就赋值,但这样的代码就没有可操作性,所以我们…

2023年12月12日作业

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> #include <QTimer> #include <QTime> #include <QTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : pub…

章鱼网络进展月报 | 2023.11.1-11.30

章鱼网络大事摘要 1、2023年12月&#xff0c;Octopus 2.0 将会正式启动。 2、隐私协议 Secret Network 宣布使用 Octopus Network 构建的 NEAR-IBC 连接 NEAR 生态。 3、Louis 受邀作为嘉宾&#xff0c;在 NEARCON2023 的多链网络主题沙龙中发言&#xff1a;我们依然处于区…

【教学类-06-14】20231212 (4*13格版)X-Y之间“加法减法+-题”正方形纸手工纸打印

效果展示——15*15CM手工纸 背景需求&#xff1a; 大3班里做“加减法”题&#xff0c;要求是最少做一张习题纸&#xff08;数字火车、加减法、分合题&#xff09;&#xff0c;然后就选手工纸玩。 做完自选的X-Y加减法题目后&#xff0c;大三班一位男孩把纸给我看&#xff1a;…

二、SpringFramework 介绍

2.1 Spring 和 SpringFramework概念 https://spring.io/projects 广义的 Spring&#xff1a;Spring 技术栈&#xff08;全家桶&#xff09; 广义上的 Spring 泛指以 Spring Framework 为基础的 Spring 技术栈。 经过十多年的发展&#xff0c;Spring 已经不再是一个单纯的应…

产品经理必备-----Axure元件使用及案列

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理管理项目周期及【Axure RP9】简介&安装&基本使用》 ⛺️ 越努力 &#xff0c;越幸运 目录 一、Axure简介 二、Axure基本元件 2.1基本元件的使用 2.1.1 、形状元件 2.…

如何将Word中的表格图片转换为可编辑格式?

我们都知道&#xff0c;Word中的表格是一个非常有用的工具&#xff0c;可以让我们在文档中轻松添加和编辑各种数据。但有时候我们可能会遇到一个问题&#xff1a;当表格作为图片插入时&#xff0c;我们就不能直接编辑它了。这可怎么办呢&#xff1f; 别担心&#xff0c;我们有…

【算法】递归、搜索与回溯算法

文章目录 一. 名词解释1. 递归1.1 什么是递归&#xff1f;1.2 为什么会用到递归&#xff1f;1.3 如何理解递归&#xff1f;1.4 如何写好一个递归&#xff1f; 2. 遍历和搜索3. 回溯和剪枝 二. 递归系列专题1. 汉诺塔问题2. 合并两个有序链表3. 反转链表4. 两两交换链表中的节点…

3DSEE:AI驱动的3D模型语义搜索引擎

3DSEE &#xff08;3D SEmantic Engine&#xff09;是基于 AI 技术的 3D 模型语义搜索引擎&#xff0c;可以自动提取 3D 模型内涵的语义信息并存储入库&#xff0c;以帮助用户使用自然语言或关键字高效地检索 3D 模型。3DSEE 提供完善的二次开发 API&#xff0c;无论使用Java、…

大数据技术6:大数据技术栈

前言&#xff1a;大数据相关的技术名词特别多&#xff0c;这些技术栈之间的关系是什么&#xff0c;对初学者来说很难找到抓手。我一开始从后端转大数据的时候有点懵逼&#xff0c;整体接触了一遍之后才把大数据技术栈给弄明白了。 一、大数据技术栈 做大数据开发&#xff0c;无…

linux课程第二课------命令的简单的介绍2

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

如何用idm下载迅雷 2024最新详细解析

有许多小伙伴日常习惯用迅雷处理或者下载文件&#xff0c;对于普通用户&#xff0c;由于迅雷平台的限速&#xff0c;下载速度仅有几十kb。此外&#xff0c;还有一些小伙伴安装idm后软件界面是英文&#xff0c;那么如何用idm下载迅雷&#xff0c;idm怎么设置中文呢&#xff1f;今…

9:00面试,9:06就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到12月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40…

C++写文件时主动刷新磁盘文件大小

一.效果 如下图所示,test.log是我正在写入的文件。 二.实现 #include <fstream> #include <io.h> #include <iostream> #include <stdio.h>class OfSteamImmediately : public std::ofstream { public:OfSteamImmediately(){}~OfSteamImmediately()…

【项目小结】优点分析

一、 个人博客系统 一&#xff09;限制强制登录 问题&#xff1a;限制用户登录后才能进行相关操作解决&#xff1a; 1&#xff09;前端&#xff1a; ① 写一个函数用于判断登录状态&#xff0c;如果返回的状态码是200就不进行任何操作&#xff0c;否则Ajax实现页面的跳转操作…

ArkTS布局

布局 通过Row和Column容器来实现布局 通用属性 justifyContent 设置子元素在主轴方向的对齐格式 Column容器参数如下&#xff08;Row容器只是改变主轴方向&#xff0c;将每个图横过来理解即可&#xff09; alignItems 设置子元素在交叉轴方向的对齐格式 Row容器使用VerticalA…

【清晰明了】Jenkins邮件发送配置

自带邮件插件 首先要知道的是jenkins是自带邮件插件的&#xff0c;且不支持卸载。 下面开始配置自带邮件插件。 配置默认邮件管理员 系统管理 --> 系统配置&#xff0c;进行如下配置&#xff1a; 不配置管理员邮件地址报错如下 jakarta.mail.internet.AddressException:…