AWS S3桶 配置访问权限(AKSK)的流程

这篇具有很好参考价值的文章主要介绍了AWS S3桶 配置访问权限(AKSK)的流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

在新上线的机器上,需要给hadoop配置AKSK,否则在该机器上执行的任务将无法访问S3中的文件。

AK:Access Key Id,用于标示用户

SK:Secret Access Key,是用户用于加密认证字符串和用来验证认证字符串的密钥

容器如果其宿主机配置了角色(Role)权限,则对应的容器不需要配置aksk也可以访问S3

Flume服务和hiveserver2的的S3权限配置方法查看最后补充内容


二、流程

  • 登录主机

使用root账号登录需要访问S3桶的机器

  • 验证机器没有权限登录

首先输入hdfs指令,确认该机器没有权限登录S3桶

hdfs dfs -ls s3://桶名/

报下面错误的就是没有权限

com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain
  • 编辑配置文件

配置文件所在的路径为

/etc/hadoop/conf/core-site.xml

备份配置文件

cp /etc/hadoop/conf/core-site.xml /etc/hadoop/conf/core-site.xml_bak

编辑配置文件,通常将AKSK添加在下面位置,方便查找

vi /etc/hadoop/conf/core-site.xml


<!-- AKSK -->
  <property>
    <name>fs.s3.awsAccessKeyId</name>
    <value>这里填AK</value>
  </property>
  
  <property>
    <name>fs.s3.awsSecretAccessKey</name>
    <value>这里填SK</value>
  </property>


</configuration>

※按shift+g (G)自动跳转到最后一行

※按shift+4 ($)条转到行最后一个字符

【注意】记得切换成英文输入法,否则可能按什么都没反应

  • 在根目录创建mnt文件夹

因为在AWS集群中,执行作业的时候会在本地机器创建缓存文件。如果该文件夹不存在,或者没有访问文件夹的权限,则会报错

登录root账号,在根目录创建

※参数-p是若指定的目录(mnt、mnt1、mnt2、mnt3)不存在,则创建该目录

mkdir -p /mnt/s3
mkdir -p /mnt1/s3
mkdir -p /mnt2/s3
mkdir -p /mnt3/s3
mkdir -p /mnt4/s3

然后修改文件夹权限

※参数-R是将该目录下的文件、文件夹的权限一并修改

chmod -R 777 /mnt
chmod -R 777 /mnt1
chmod -R 777 /mnt2
chmod -R 777 /mnt3
chmod -R 777 /mnt4
  • 验证机器有权限登录

输入hdfs指令,确认该机器已有权限登录S3桶,正常输出桶路径下文件则说明没有问题

hdfs dfs -ls s3://S3桶名/

三、补充内容

  • Flume服务的S3权限配置

flume使用的配置项不是下面这个文件

/etc/hadoop/conf/core-site.xml

而是需要查看flume服务启动时导入的参数文件,其中--conf-file 后面的文件即该文件启动时所载入的配置文件

jps -ml
749 flume.Application --conf-file /xxx/conf/flume.conf

编辑里面的S3桶的配置

default_hdfs_path=s3://AK:SK@桶路径
  • hiveserver2服务的S3权限配置

如果是hiveserver2的机器配置AKSK后,则可能依旧会出现以下报错

Error running hive query: 
org.apache.hive.service.cli.HiveSQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: BXY1RFNT2S0X40Z5; S3 Extended Request ID: yt6I7Ieig9vhBUFFRSmysr0NY6cQABowIDgrPPT/MqCKUVDqtc91ootdSud1Pb416X24tQ1vHhU=; Proxy: null)
	at ...
Caused by: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: BXY1RFNT2S0X40Z5; S3 Extended Request ID: yt6I7Ieig9vhBUFFRSmysr0NY6cQABowIDgrPPT/MqCKUVDqtc91ootdSud1Pb416X24tQ1vHhU=; Proxy: null)
    at ...

原因:

在独立容器部署的hive中,使用添加core-site.xml新增AKSK的方法,会因为默认的hidden configuration配置的原因,导致在Hive server2端配置中指定的AKSK会被隐藏,无法被完整传递到YARN上,最终在子节点的container任务端上就会发生无法辨识身份的S3 400错误问题。

此报错的处理方法为:需要在hiveserver2中的hive-site.xml中添加下面的参数文章来源地址https://www.toymoban.com/news/detail-459972.html

vi /etc/hive/hiveserver2/conf/hive-site.xml  


    <property>
        <name>hive.conf.hidden.list</name>
        <value>none</value>
        <description>Hidden config in hive</description>
    </property>

到了这里,关于AWS S3桶 配置访问权限(AKSK)的流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AWS s3存储桶限制IP访问

    官方参考连接: https://docs.amazonaws.cn/AmazonS3/latest/userguide/example-bucket-policies.html 1、从控制台进入对应的存储桶,进入权限,编辑策略 2、效果 命令可以查到存储桶,但是不能查看桶里面的内容 3、在命令行修改权限 如果修改权限是时候,我上面第二条IP没有加,控制台进入对应

    2024年02月12日
    浏览(52)
  • AWS——04篇(AWS之Amazon S3(云中可扩展存储)-02——EC2访问S3存储桶)

    关于AWS的前几篇入门文章,如下: AWS——01篇(AWS入门 以及 AWS之EC2实例及简单使用). AWS——02篇(AWS之服务存储EFS在Amazon EC2上的挂载——针对EC2进行托管文件存储). AWS——03篇(AWS之Amazon S3(云中可扩展存储)-01入门). 我这里使用的都是前面创建好的,关于怎么创建,请

    2024年02月13日
    浏览(46)
  • 通过AWS Endpoints从内网访问S3

    AWS S3作为非结构化数据的存储,经常会有内网中的app调用的需求。S3默认是走公网访问的,如果内网app通过公网地址访问S3并获取数据会消耗公网带宽费用。如下图所示: AWS 提供了一种叫做endpoints的资源,这种资源可以后挂S3服务,使得内网服务可以不出公网访问S3. VPC endpo

    2024年02月03日
    浏览(46)
  • 【Terraform学习】使用 Terraform 从 EC2 实例访问 S3 存储桶(Terraform-AWS最佳实战学习)

    前提条件 安装 Terraform : 地址 下载仓库代码模版 本实验代码 位于  task_ec2_s3connet  文件夹中 。 变量文件  variables.tf     在上面的代码中,您将 声明 , aws_access_key , aws_secret_key 和 区域变量 。 声明存储桶名称变量 。 terraform.tfvars   在上面的代码中,您将 定义变量的值

    2024年02月11日
    浏览(46)
  • AP上线配置流程

    相应地,AR路由器的WLAN工作模式分为FAT AP和AC两种模式,不同的模式对应不同的使用场景。 FAT AP模式:AR路由器作为FAT AP,独立为用户提供WLAN接入服务,无线网络的配置在FAT AP上单独配置。FAT AP模式主要用于小型企业、家庭、咖啡厅、SOHO办公等小型场所。 AC模式:AR路由器作

    2024年01月17日
    浏览(34)
  • 【AWS系列】第八讲:AWS Serverless之S3

    目录 序言 1.基础介绍 1.1 概念介绍 1.2 原理介绍 1.3 应用场景 1.3.1 构建数据湖 1.3.2 备份和还原关键数据 1.3.3 以最低成本存档数据 1.3.4 运行云原生应用程序 1.4 S3 的功能 1.4.1 存储类 1.4.2 存储管理 1.4.3 访问管理 2 使用方法 2.1 创建存储桶 ​2.2 配置 CORS 规则 3 投票 三言两

    2024年02月03日
    浏览(45)
  • laravel aws s3

    由于公司有境外项目,服务器、文件存储都是用的亚马逊,真真地是没有用过,在此记录一下自己的s3研究结果       1、创建存储桶时,以下内容均不要勾选,其他默认就行    2、编辑策略: {     \\\"Version\\\": \\\"2012-10-17\\\",     \\\"Statement\\\": [         {             \\\"Sid\\\"

    2024年02月11日
    浏览(52)
  • 腾讯云轻量应用服务器配置_网站上线全流程

    腾讯云轻量应用服务器CPU内存带宽配置高,成本很低,腾讯云百科来详细说下腾讯云服务器从购买、配置到网站上线全流程,包括轻量服务器配置选择、应用镜像选择、重置密码、防火墙开放端口教程等详细教程: 目录 一:注册腾讯云账号并完成实名认证 二:购买特价轻量

    2024年02月12日
    浏览(54)
  • 自建AWS S3存储服务

    AWS S3(Amazon S3,全名为亚马逊简易存储服务),是亚马逊公司利用其亚马逊网络服务系统所提供的网络在线存储服务。我常用的很多SaaS服务中提供的文件存储功能,底层也都是AWS S3,比如: Cloudflare中的R2基于AWS S3构建的 Supabase页可以兼容AWS S3(自建时,默认直接文件存储到

    2024年02月20日
    浏览(44)
  • AWS S3 跨账号迁移

    1. 在目标账号创建策略(S3MigrationPolicy)和角色(S3MigrationRole) 策略(S3MigrationPolicy)示例: 角色(S3MigrationRole)示例: 2. 安装 aws cli,并配置$ aws configure,请参阅 AWS CLI 文档中的安装或更新 AWS CLI 最新版本 3. 假设 S3 迁移角色 使用 AWS CLI 假设S3MigrationRole 这里的 –role-arn 就

    2024年01月23日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包