AWS 身份验证
Amazon 定义了两种方法来控制对 AWS 资源的访问(例如 S3):IAM 角色以及 ID、密钥和(可选)会话令牌的组合。对于非公共存储桶的长期访问,您应该使用 IAM 角色来集中进行访问控制。如果要更改应用程序的访问设置,则无需更改应用程序的配置。您只需更改应用于您的 EC2 实例的 IAM 角色。
但是,对于备份和还原数据库或将数据加载到非公共存储桶或从非公共存储桶加载数据等一次性任务,您应该使用 AWS 访问密钥。
Vertica 使用这两种身份验证方法来支持不同的功能和用例:
-
Eon 模式数据库对公共存储和编录存储的 S3 访问必须始终使用 IAM 角色身份验证。IAM 角色是 AWS 资源的默认访问控制方法。如果您未配置旧版访问控制会话参数,Vertica 将使用此方法。
-
单个用户可以从 S3 存储位置而不是 Vertica 用于公共存储的位置读取数据。例如,用户可以使用 COPY 将数据从 S3 存储桶加载到 Vertica,或查询存储在 S3 上的外部表。如果分配给 Vertica 节点的 IAM 角色无权访问此外部 S3 数据,则用户必须在会话变量中设置 ID、密钥和(可选)访问令牌以授权访问该数据。这些会话变量会覆盖服务器上设置的 IAM 角色。有关这些会话参数的列表,请参阅 S3 参数。
-
单个用户可以使用文件导出将数据导出到 S3。文件导出不能使用 IAM 授权。要将数据导出到 S3 的用户必须在会话变量中设置 ID、密钥和(可选)访问令牌值。
重要
如果数据库在 Eon 模式下运行,则使用 ID 和密钥身份验证会更加复杂。除了有权访问外部 S3 数据之外,用户设置的任何 ID 都必须有权读取和写入 Vertica 用于存储公共数据和编录数据的 S3 存储位置。用户执行的查询将此 ID 用于所有存储请求,而不仅仅是那些用于访问外部 S3 数据的请求。如果 ID 无权访问编录和公共存储,则用户无法执行这些查询。配置 IAM 角色
要配置 IAM 角色以授予 Vertica 对 AWS 资源的访问权限,您必须:
-
创建一个 IAM 角色以允许 EC2 实例访问特定资源。
-
授予该角色访问您的资源的权限。
-
将此 IAM 角色附加到 Vertica 群集中的每个 EC2 实例。
要查看 Vertica 群集的 IAM 角色示例,请查看 Vertica 提供的 Cloud Formation 模板之一中定义的角色。您可以从 Amazon 市场中的任何 Vertica 条目下载这些模板。在每个条目的“使用信息 (Usage Information)”部分下,单击“查看 CloudFormation 模板 (View CloudFormation Template)”链接,然后单击“下载 CloudFormation 模板 (Download CloudFormation Template)”。
有关 IAM 角色的详细信息,请参阅 AWS 文档中的适用于 Amazon EC2 的 IAM 角色。