![](/img/trans.png)
[英]How can we connect to Amazon CloudWatch using boto3 with IAM role without using secret access key
[英]Can we use copy command to load data into redshift table from S3 using access key and secret key (Without with IAM Role)
我有一个要求,我需要从 S3 将数据加载到 Redshift 表中。 S3 中的文件采用 Parquet 格式。 我没有 IAM 策略,但有一个 S3 访问密钥和秘密密钥。
注意事项:Redshift 和 S3 位于两个不同的 AWS 账户中,但这些账户位于同一区域。
我试过的:
copy abc from 's3://us-publish-prod/customer/r_cust_geo_funcl_terr_addr_elig/'
credentials 'aws_access_key_id=XXXXXXXXX;aws_secret_access_key=XXXXXXXXXXX'
FORMAT AS PARQUET;
Error: Invalid operation: COPY from this file format only accepts IAM_ROLE credentials
提前致谢。
根据列数据格式的 COPY - Amazon Redshift ,似乎从 Parquet 格式加载数据需要使用 IAM 角色而不是 IAM 凭证:
COPY
命令凭证必须使用 AWS Identity and Access Management (IAM) 角色作为IAM_ROLE
参数或CREDENTIALS
参数的参数提供。
这意味着使用以下任何一种:
CREDENTIALS 'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>'
IAM_ROLE 'arn:aws:iam::<aws-account-id>:role/<role-name'
因此,即使文件存储在您自己的 AWS 账户中,您也需要使用 IAM 角色。
因此,您需要:
GetObject
和ListBucket
(在另一个账户中)GetObject
和ListBucket
权限(很可能与他们授予您的 IAM 用户的权限相同)COPY
命令以使用 IAM 角色而不是凭证
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.