boto3에서 액세스 포인트를 사용하여 S3 버킷에서 읽고 쓰기

Krzysztof Słowiński

액세스 포인트를 사용하여 S3 버킷에 액세스해야합니다 boto3.

읽기 및 쓰기를 허용하는 정책으로 액세스 포인트를 만들었습니다 ( <access_point_arn>is my access point ARN).

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": ["s3:GetObject", "s3:PutObject"],
            "Resource": "<access_point_arn>/object/*"
    ]
}

공식 문서에는 ARN버킷 이름 ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html ) 대신 액세스 포인트 가 있어야 하는 액세스 포인트에 대한 언급이 있습니다. . 개발자를위한 공식 설명서 사이트 ( https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html ) 에는 예제가 없습니다 .

따라서 정보를 기반으로 올바른 사용 방법은 다음과 같습니다.

import boto3
s3 = boto3.resource('s3')
s3.Bucket('<access_point_arn>').download_file('hello.txt', '/tmp/hello.txt')

AmazonS3FullAccess관리 형 정책이 연결된 Lambda에서이 코드를 실행 하면ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden

Lambda 및 S3 액세스 포인트는 모두 동일한 VPC에 연결됩니다.

복사 붙여 넣기

내 첫 번째 추측은 (1) 버킷 (버킷 정책) 및 (2) boto3 SDK에서 사용중인 IAM 사용자 또는 역할에 대해 정의해야하는 권한이 누락 된 것입니다.

(1) 문서 에서

애플리케이션 또는 사용자가 액세스 포인트를 통해 객체에 액세스 할 수 있으려면 액세스 포인트 와 기본 버킷이 모두 요청을 허용해야합니다 .

예를 들어 액세스 포인트를 통해 제공되는 각 보안 주체를 지정할 필요가 없도록 액세스 제어를 액세스 포인트에 위임하는 버킷 정책을 추가 할 수 있습니다. 링크 된 문서에 예제가 있습니다.

(2) 질문에서 언급했듯이 LambdaExecutionRole에서 AmazonS3FullAccess 정책을 이미 사용하고 있습니다. 내 유일한 추측 (즉, 나에게 일어난 일)은 예를 들어 버킷의 객체에 KMS 암호화가 있고 역할에 kms 작업에 대한 권한이 없다는 것입니다. 관리자 정책이 첨부 된 기능을 실행하고 작동하는지 확인하십시오. 그렇다면 어떤 특정 권한이 누락되었는지 확인하십시오.

추가 참고 사항 :

  • 특정 VPC 내에서만 사용할 수 있도록 액세스 포인트를 제한하지 않았습니다.
  • 공개 액세스를 차단하고 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

boto3를 사용하여 S3에서 항목에 액세스하고 해당 내용을 읽는 방법 ()

분류에서Dev

Python boto3를 사용하여 많은 수의 버킷에서 S3 기본 서버 측 암호화

분류에서Dev

tidyverse를 사용하여 s3 버킷에서 데이터 읽기

분류에서Dev

boto3를 사용하여 AWS에서 S3 액세스 키가 특정 버킷에 액세스 할 수 있는지 여부를 확인하는 방법

분류에서Dev

boto3 및 python을 사용하여 S3 버킷 디렉토리에서 특정 형식 파일 만 읽기

분류에서Dev

Amazon S3 버킷에서 퍼블릭 읽기 전용 액세스를 설정하는 방법은 무엇입니까?

분류에서Dev

람다 함수와 boto3를 사용하여 s3 버킷에서 csv 파일을 읽는 방법은 무엇입니까?

분류에서Dev

IAM 역할을 사용하여 스크립트에서 S3 버킷에 액세스

분류에서Dev

Boto3를 사용하여 다른 계정의 S3 버킷에 액세스하는 동안 Lambda가 시간 초과 됨

분류에서Dev

S3 버킷에서 이미지 (파일)를 렌더링하는 방법은 프런트 엔드의 모든 퍼블릭 액세스를 차단했습니다 (프라이빗 쓰기, 프라이빗 읽기)

분류에서Dev

S3에서 1000 개의 버킷 한도 초과 / 액세스 포인트 사용

분류에서Dev

boto3를 사용하여 S3 버킷에서 파일을 다운로드 할 때 ValueError?

분류에서Dev

boto3에서 S3 버킷의 퍼블릭 액세스 버킷 설정에 대한 정보를 얻을 수 있습니까?

분류에서Dev

boto3를 사용하여 공용 버킷에서 다운로드

분류에서Dev

VPN 연결에서만 S3 버킷에 대한 IAM 사용자 액세스를 제한하는 방법

분류에서Dev

boto3를 사용하여 Python 람다에서 S3 동기화 호출

분류에서Dev

Boto3를 사용하여 S3 버킷에서 파일을 다운로드하기 위해 미리 서명 된 URL을 생성하려면 어떻게해야합니까?

분류에서Dev

gulp-awspublish를 사용하여 여러 s3 버킷에 단일 파일 쓰기

분류에서Dev

boto3를 사용하여 S3에 파일을 업로드하는 함수에 대한 단위 테스트 만들기

분류에서Dev

AWS S3 버킷에서 이미지를로드하는 동안 액세스 거부 오류

분류에서Dev

AWS SDK를 사용하여 Direct Connect, VPC 및 VPC 엔드 포인트를 통해 온 프레미스 세계에서 AWS S3에 액세스

분류에서Dev

Airflow S3 Hook 또는 boto3를 사용하는 csv.gzip 인 디렉터리에서 여러 파일을 읽는 방법은 무엇입니까?

분류에서Dev

Laravel을 사용하여 버킷을 공개하지 않고 AWS S3에서 파일 가져 오기

분류에서Dev

Python 및 Boto3를 사용하여 데이터를 눈송이로로드하기 위해 S3 버킷에서 선택한 파일을 눈송이 단계로 변환하는 방법

분류에서Dev

python2.7에서 boto3 모듈을 사용하여 CSV 파일 및 S3 버킷을 가져 오려고 할 때 잘못된 타임 스탬프 오류

분류에서Dev

람다에서 s3 버킷에 액세스하는 중 오류-InvalidBucketName

분류에서Dev

Boto3를 사용하여 Python의 S3 서버에 base64 문자열 (이미지 데이터)을 업로드하고 반환 URL 가져 오기

분류에서Dev

Apache Spark를 사용하여 제한된 권한으로 S3 버킷에 쓰기

분류에서Dev

SongsController # index의 AWS :: S3 :: PermanentRedirect "액세스하려는 버킷은 지정된 엔드 포인트를 사용하여 주소 지정되어야합니다."

Related 관련 기사

  1. 1

    boto3를 사용하여 S3에서 항목에 액세스하고 해당 내용을 읽는 방법 ()

  2. 2

    Python boto3를 사용하여 많은 수의 버킷에서 S3 기본 서버 측 암호화

  3. 3

    tidyverse를 사용하여 s3 버킷에서 데이터 읽기

  4. 4

    boto3를 사용하여 AWS에서 S3 액세스 키가 특정 버킷에 액세스 할 수 있는지 여부를 확인하는 방법

  5. 5

    boto3 및 python을 사용하여 S3 버킷 디렉토리에서 특정 형식 파일 만 읽기

  6. 6

    Amazon S3 버킷에서 퍼블릭 읽기 전용 액세스를 설정하는 방법은 무엇입니까?

  7. 7

    람다 함수와 boto3를 사용하여 s3 버킷에서 csv 파일을 읽는 방법은 무엇입니까?

  8. 8

    IAM 역할을 사용하여 스크립트에서 S3 버킷에 액세스

  9. 9

    Boto3를 사용하여 다른 계정의 S3 버킷에 액세스하는 동안 Lambda가 시간 초과 됨

  10. 10

    S3 버킷에서 이미지 (파일)를 렌더링하는 방법은 프런트 엔드의 모든 퍼블릭 액세스를 차단했습니다 (프라이빗 쓰기, 프라이빗 읽기)

  11. 11

    S3에서 1000 개의 버킷 한도 초과 / 액세스 포인트 사용

  12. 12

    boto3를 사용하여 S3 버킷에서 파일을 다운로드 할 때 ValueError?

  13. 13

    boto3에서 S3 버킷의 퍼블릭 액세스 버킷 설정에 대한 정보를 얻을 수 있습니까?

  14. 14

    boto3를 사용하여 공용 버킷에서 다운로드

  15. 15

    VPN 연결에서만 S3 버킷에 대한 IAM 사용자 액세스를 제한하는 방법

  16. 16

    boto3를 사용하여 Python 람다에서 S3 동기화 호출

  17. 17

    Boto3를 사용하여 S3 버킷에서 파일을 다운로드하기 위해 미리 서명 된 URL을 생성하려면 어떻게해야합니까?

  18. 18

    gulp-awspublish를 사용하여 여러 s3 버킷에 단일 파일 쓰기

  19. 19

    boto3를 사용하여 S3에 파일을 업로드하는 함수에 대한 단위 테스트 만들기

  20. 20

    AWS S3 버킷에서 이미지를로드하는 동안 액세스 거부 오류

  21. 21

    AWS SDK를 사용하여 Direct Connect, VPC 및 VPC 엔드 포인트를 통해 온 프레미스 세계에서 AWS S3에 액세스

  22. 22

    Airflow S3 Hook 또는 boto3를 사용하는 csv.gzip 인 디렉터리에서 여러 파일을 읽는 방법은 무엇입니까?

  23. 23

    Laravel을 사용하여 버킷을 공개하지 않고 AWS S3에서 파일 가져 오기

  24. 24

    Python 및 Boto3를 사용하여 데이터를 눈송이로로드하기 위해 S3 버킷에서 선택한 파일을 눈송이 단계로 변환하는 방법

  25. 25

    python2.7에서 boto3 모듈을 사용하여 CSV 파일 및 S3 버킷을 가져 오려고 할 때 잘못된 타임 스탬프 오류

  26. 26

    람다에서 s3 버킷에 액세스하는 중 오류-InvalidBucketName

  27. 27

    Boto3를 사용하여 Python의 S3 서버에 base64 문자열 (이미지 데이터)을 업로드하고 반환 URL 가져 오기

  28. 28

    Apache Spark를 사용하여 제한된 권한으로 S3 버킷에 쓰기

  29. 29

    SongsController # index의 AWS :: S3 :: PermanentRedirect "액세스하려는 버킷은 지정된 엔드 포인트를 사용하여 주소 지정되어야합니다."

뜨겁다태그

보관