내 Lambda 함수가 내 Amazon S3 버킷에 액세스하도록 허용하려면 어떻게 해야 하나요?

3분 분량
0

내 AWS Lambda 함수가 내 Amazon Simple Storage Service(S3) 버킷에 액세스할 수 있기를 원합니다.

간략한 설명

자신의 Lambda 함수에 동일한 AWS 계정의 Amazon S3 버킷에 대한 액세스 권한을 부여하려면 다음을 진행하세요.

1.    S3 버킷에 대한 액세스 권한도 부여하는 Lambda 함수를 위한 AWS ID 및 액세스 관리(IAM) 역할을 생성합니다.

2.    IAM 역할을 Lambda 함수 실행 역할로 구성합니다.

3.    S3 버킷 정책이 자신의 Lambda 함수 또는 해당 실행 역할에 대한 액세스를 명시적으로 거부하지 않는지 확인합니다.

중요: 자신의 S3 버킷과 함수 IAM 역할이 서로 다른 계정에 있다면 S3 버킷 정책에 필요한 권한도 부여해야 합니다. 자세한 내용은 Amazon S3 버킷에 있는 객체에 크로스 계정 액세스를 제공하려면 어떻게 해야 하나요?를 참조하세요.

해결 방법

S3 버킷에 대한 액세스 권한도 부여하는 Lambda 함수를 위한 IAM 역할 생성

1.    IAM 콘솔에서 실행 역할 생성 단계를 따릅니다.

2.    IAM 역할 목록에서 방금 생성한 역할을 선택합니다.

3.    신뢰 정책은 lambda.amazonaws.com을 신뢰할 수 있는 서비스로 추가하여 Lambda가 실행 역할을 맡을 수 있도록 허용해야 합니다. 신뢰 관계 탭을 선택하고 신뢰 정책 편집을 선택한 다음 정책을 다음과 같이 바꿉니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
     "Effect": "Allow",
     "Principal": {
     "Service": "lambda.amazonaws.com"
    },
  "Action": "sts:AssumeRole"
  }
 ]
}
  1. 정책 업데이트를 선택합니다.

5.    권한 탭에서 인라인 정책 추가를 선택합니다.

6.    JSON 탭을 선택합니다.

7.    자신의 S3 버킷에 대한 액세스 권한을 부여하는 리소스 기반 IAM 정책을 입력합니다. 자세한 내용은 AWS Lambda용 리소스 기반 정책 사용을 참조하세요.

다음 IAM 정책의 예는 Get 권한을 사용하여 특정 Amazon S3 버킷에 대한 액세스 권한을 부여합니다. Amazon S3 버킷 내 객체에 액세스하려면 올바른 경로를 지정하거나 와일드카드 문자(“"*")를 사용해야 합니다. 자세한 내용은 IAM 정책 작성: Amazon S3 버킷에 대한 액세스 권한을 부여하는 방법을 참조하세요.

중요: **"arn:aws:s3:::EXAMPLE-BUCKET"**을 자신의 S3 버킷 Amazon 리소스 이름(ARN)으로 바꾸세요.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::EXAMPLE-BUCKET/*"
      ]
    }
  ]
}

6.    정책 검토를 선택합니다.

7.    이름에 자신의 정책 이름을 입력합니다.

8.    정책 생성을 선택합니다.

IAM 역할을 Lambda 함수 실행 역할로 구성

1.    Lambda 콘솔을 엽니다.

2.    자신의 Lambda 함수를 선택합니다.

3.    실행 역할에서 기존 역할을 위해 생성한 IAM 역할을 선택합니다.

4.    저장을 선택합니다.

S3 버킷 정책이 자신의 Lambda 함수 또는 해당 실행 역할에 대한 액세스를 명시적으로 거부하지 않는지 확인

자신의 S3 버킷 정책을 검토하거나 편집하려면 Amazon S3 콘솔을 사용하여 버킷 정책 추가 지침을 따르세요.

중요: 자신의 S3 버킷과 함수 IAM 역할이 서로 다른 계정에 있다면 S3 버킷 정책에 필요한 권한도 명시적으로 부여해야 합니다. 자세한 내용은 Amazon S3 버킷에 있는 객체에 크로스 계정 액세스를 제공하려면 어떻게 해야 하나요?를 참조하세요.

다음 IAM S3 버킷 정책의 예는 Lambda 실행 역할 크로스 계정 액세스를 S3 버킷에 부여합니다.

중요: **"arn:aws:s3:::EXAMPLE-BUCKET/*"**을 자신의 S3 버킷 ARN으로 바꾸세요. **"arn:aws:iam::123456789012:role/ExampleLambdaRoleFor123456789012"**를 자신의 Lambda 실행 역할 ARN으로 바꿉니다.

{
  "Id": "ExamplePolicy",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::EXAMPLE-BUCKET/*"
      ],
      "Principal": {
        "AWS": [
          "arn:aws:iam::123456789012:role/ExampleLambdaRoleFor123456789012"
        ]
      }
    }
  ]
}

관련 정보

AWS 정책 생성기

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠