[实时计算flink]安全访问最佳实践

由于Flink无法提前预知您要使用的上下游系统,当作业需要访问不同的上下游系统来读写数据时,可能需要使用您的AccessKey信息作为访问凭证。主账号的AccessKey具备云账号下资源的全部权限,一旦泄露可能会造成严重后果。本文通过对RAM用户授予相关上下游更小化权限,并结合Flink变量功能对AccessKey进行加密,以进一步提升访问安全性。

方案说明

本方案通过减少暴露面积原则来实现更安全的AccessKey访问。即不使用主账号的AccessKey,通过主账号授权子账号的方式,让子账号具备访问某些上下游的权限或更小化权限,然后利用Flink变量功能使用AccessKey,降低AccessKey明文泄漏的风险,减少意外情况下AccessKey的泄漏导致您主账号下所有的云资源受到的相关安全风险。

本文创建了一个RAM用户,并为RAM用户授予日志服务SLS Project下指定Logstore权限,并利用变量功能,实现Flink作业读写SLS数据。

示例教程

  1. 使用阿里云账号(主账号)或RAM管理员创建RAM用户,具体操作请参见创建RAM用户。

    访问方式必须勾选OpenAPI调用访问,启用后,会自动为RAM用户生成一个AccessKey ID和AccessKey Secret。

    重要

    RAM用户的AccessKey Secret只在创建时显示,不支持查看,请务必妥善保管。

  2. 为RAM用户授予SLS相关权限。

    1. 创建自定义权限策略。

      1. 在左侧导航栏,选择权限管理 > 权限策略

      2. 权限策略页面,单击创建权限策略

      3. 脚本编辑页签,将配置框中的原有脚本替换为如下内容,然后单击继续编辑基本信息

        Project和Logstore需要根据您的实际情况替换,更多权限策略请参见RAM自定义授权示例。

        指定Logstore只读权限

        指定Logstore写入权限

        {"Version": "1","Statement": [{"Action": "log:ListProject","Resource": "acs:log:*:*:project/*","Effect": "Allow"},{"Action": "log:List*","Resource": "acs:log:*:*:project/<指定的Project名称>/logstore/*","Effect": "Allow"},{"Action": ["log:Get*","log:List*"],"Resource": "acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>","Effect": "Allow"}]
        }
      4. 输入权限策略名称备注,单击确定

  3. 为RAM用户添加上一步创建的自定义权限策略。具体操作,请参见为RAM用户授权。

  4. 配置变量,降低AccessKey明文泄漏的风险。

    为步骤1创建RAM用户时得到的AccessKey ID和AccessKey Secret创建变量,创建后只需调用变量名使用,无需填写具体值,具体操作步骤请参见新增变量。本文针对AccessKey ID和AccessKey Secret分别创建了名为slslak和slsaks的变量。

  5. 创建Flink作业,读取SLS数据。

    在SQL作业开发时以${secret_values.变量名}格式使用变量,避免明文AccessKey带来的安全风险,示例如下。

    CREATE TEMPORARY TABLE sls_input(`__source__` STRING METADATA VIRTUAL,__tag__ MAP<VARCHAR, VARCHAR> METADATA VIRTUAL,`__topic__` STRING METADATA VIRTUAL,deploymentName STRING,`level`STRING,`location` STRING,message STRING,thread STRING,`time`STRING
    ) WITH ('connector' = 'sls','endpoint' ='cn-beijing-intranet.log.aliyuncs.com','accessId' = '${secret_values.slsak}','accessKey' = '${secret_values.slsaks}','starttime' = '2024-08-30 15:39:00','project' ='test','logstore' ='flinktest'
    );CREATE TEMPORARY TABLE blackhole_sink(`__source__` STRING,`__topic__` STRING,deploymentName STRING,`level` STRING,`location` STRING,message STRING,thread STRING,`time` STRING,receive_time BIGINT
    ) WITH ('connector' = 'blackhole'
    );INSERT INTO blackhole_sink
    SELECT `__source__`,`__topic__`,deploymentName,`level`,`location`,message,thread,`time`,cast(__tag__['__receive_time__'] as bigint) as receive_time
    FROM sls_input; 

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

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

相关文章

pycharm与anaconda下的pyside6的安装记录

一、打开anaconda虚拟环境的命令行窗口&#xff0c;pip install&#xff0c;加入清华源&#xff1a; pip install PySide6 -i https://pypi.tuna.tsinghua.edu.cn/simple 二、打开pycharm&#xff0c;在文件--设置--工具--外部工具中配置一下三项&#xff1a; 1、 QtDesigner…

Java常用任务调度

JAVA 任务调度技术 前言 在日常开发过程中&#xff0c;我们经常会遇到周期性执行某段代码的场景。比如定期同步订单&#xff0c;定期更新商品信息&#xff0c;定期发送消息等。这些重复执行的代码可以抽象为一个任务(Task)。 一个Task的特点如下&#xff1a; 包含需要执行的业…

将多个commit合并成一个commit并提交

0 Preface/foreword 1 压缩多个commit方法 1.1 git merge --squash 主分支&#xff1a;main 开发分支&#xff1a;test 当前在test分支提交了8个commits&#xff0c;功能已经开发完成&#xff0c;需要将test分支合并到main分支&#xff0c;但是不想在合并时候&#xff0c;看…

开源一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单的源码

大家好&#xff0c;我是一颗甜苞谷&#xff0c;今天分享一款基于若依的wms仓库管理系统&#xff0c;支持lodop和网页打印入库单、出库单的源码。 前言 在当今快速发展的商业环境中&#xff0c;库存管理对于企业来说至关重要。然而&#xff0c;许多企业仍然依赖于传统的、手动…

【Rust】环境搭建

▒ 目录 ▒ &#x1f6eb; 导读需求 1️⃣ 安装Chocolatey安装依赖 2️⃣ 安装RustRover安装toolchain&#xff08;rustup、VS&#xff09;重启配置生效设置安装插件 &#x1f4d6; 参考资料 &#x1f6eb; 导读 需求 重装系统&#xff0c;记录下环境搭建遇到的问题。 1️⃣ …

安装Ubuntu系统

打开vmware&#xff0c;新建一个Ubuntu虚拟机&#xff0c;点击自定义&#xff0c;进入下一步 &#xff0c;选择Workstation 17.x后&#xff0c;点击下一步 选择稍后安装系统选项&#xff0c;进入选择客户机操作系统页面&#xff0c;客户机操作系统选择Linux&#xff0c;版本选…

rom定制系列------红米note8_miui14安卓13定制修改固件 带面具root权限 刷写以及界面预览

&#x1f49d;&#x1f49d;&#x1f49d;红米note8机型代码&#xff1a;ginkgo。高通芯片。此固件官方最终版为稳定版12.5.5安卓11的版本。目前很多工作室需要高安卓版本的固件来适应他们的软件。并且需要root权限。根据客户要求。修改固件为完全root。并且修改为可批量刷写的…

了解一下,RN中怎么加载 threejs的

在React Native&#xff08;RN&#xff09;中加载和使用Three.js&#xff0c;一个流行的3D图形库&#xff0c;通常需要一些额外的步骤&#xff0c;因为Three.js主要是为Web浏览器设计的&#xff0c;而React Native则使用原生的渲染引擎。不过&#xff0c;有一些方法可以在React…

电脑仅一个C盘如何重装系统?超简单教程分享!

当我们的电脑仅配备一个C盘时&#xff0c;重装系统的过程可能会显得尤为棘手。因为一旦格式化硬盘&#xff0c;安装系统的分区也可能被一并清除&#xff0c;导致安装过程中断。这时候我们完全可以通过对电脑进行分区来解决这一问题。分区不仅能够帮助我们更好地管理硬盘空间&am…

提升网站速度与性能优化的有效策略与实践

内容概要 在数字化快速发展的今天&#xff0c;网站速度与性能优化显得尤为重要&#xff0c;它直接影响用户的浏览体验。用户在访问网站时&#xff0c;往往希望能够迅速获取信息&#xff0c;若加载时间过长&#xff0c;轻易可能导致他们转向其他更为流畅的网站。因此&#xff0…

流媒体协议.之(RTP,RTCP,RTSP,RTMP,HTTP)(二)

继续上篇介绍&#xff0c;本篇介绍一下封装RTP的数据格式&#xff0c;如何将摄像头采集的码流&#xff0c;音频的码流&#xff0c;封装到rtp里&#xff0c;传输。 有自己私有协议例子&#xff0c;有rtp协议&#xff0c;参考代码。注意不是rtsp协议。 一、私有协议 玩过tcp协议…

构建灵活、高效的HTTP/1.1应用:探索h11库

文章目录 构建灵活、高效的HTTP/1.1应用&#xff1a;探索h11库背景这个库是什么&#xff1f;如何安装这个库&#xff1f;库函数使用方法使用场景常见的Bug及解决方案总结 构建灵活、高效的HTTP/1.1应用&#xff1a;探索h11库 背景 在现代网络应用中&#xff0c;HTTP协议是基础…

利用游戏引擎的优势

大家好&#xff0c;我是小蜗牛。 在当今快速发展的游戏产业中&#xff0c;选择合适的游戏引擎对开发者来说至关重要。Cocos Creator作为一款功能强大且灵活的游戏引擎&#xff0c;为开发者提供了丰富的工具和资源&#xff0c;使他们能够高效地开发出优秀的游戏。本文将探讨如何…

TensorFlow面试整理-分布式

在深度学习的训练过程中,随着数据量和模型的复杂性增加,单个 GPU 或 CPU 无法满足高效训练的需求。TensorFlow 提供了强大的 分布式训练 功能,通过并行处理加速训练过程。分布式训练可以在多个 GPU、多个机器甚至是 TPU 上运行。以下是分布式训练的关键概念及其使用方法。 1…

仓颉编程语言官网正式上线 !首个公测版本开放下载 !

今年6月21日&#xff0c;华为开发者大会&#xff08;HDC&#xff09;正式公开介绍了华为自研的通用编程语言&#xff1a;仓颉编程语言&#xff0c;并发布了HarmonyOS NEXT仓颉语言开发者预览版&#xff0c;开发者可以使用仓颉开发鸿蒙原生应用。4个月以来&#xff0c;仓颉编程语…

PHP爬虫的奇幻之旅:如何用代码“偷窥”京东商品的SKU信息

开篇&#xff1a;代码界的007 想象一下&#xff0c;你是一名代码界的007&#xff0c;你的任务是潜入京东的数据库&#xff0c;获取商品的SKU信息。不过别担心&#xff0c;我们不是真的去偷数据&#xff0c;而是用PHP编写一个爬虫&#xff0c;合法地获取公开的API数据。这不仅是…

C++初阶(七)--类和对象(4)

目录 ​编辑 一、再谈构造函数 1.构造函数体赋值 2.初始化列表 二、类型转换 1.隐式类型转换 2.explicit关键字 3.类类型之间的对象隐式转换 三、static成员函数 1.概念 2.特性 3.面试题&#xff1a; 四、友元函数 1.基本介绍 2.回顾&#xff1a; 3.友元类&am…

【问题记录】当机器人存在多个串口需要绑定时udevadm的作用

一、正常绑定 输入sudo udevadm info -a /dev/ttyUSBx | grep KERNELS 命令 会出现KERNELS的编号&#xff0c;记录编号。 修改规则文件/etc/udev/rules.d/99-usb.rules 添加以下命令 KERNEL"ttyUSB*", KERNELS"2-1.2:1.0", MODE:"0666", GROU…

kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?

大家好&#xff0c;我是锋哥。今天分享关于【kafka 分布式&#xff08;不是单机&#xff09;的情况下&#xff0c;如何保证消息的顺序消费?】面试题&#xff1f;希望对大家有帮助&#xff1b; kafka 分布式&#xff08;不是单机&#xff09;的情况下&#xff0c;如何保证消息的…

掌握闲鱼商品 API 接口对接流程

对接闲鱼商品 API 接口主要有以下步骤&#xff1a; 注册成为闲鱼平台合作伙伴&#xff1a; 访问闲鱼开放平台&#xff08;如添加 TNY264278 卫星号&#xff09;&#xff0c;按照平台要求进行账号注册。你需要提供个人或公司的相关信息&#xff0c;如联系方式、企业资质&#xf…