서버 측 암호화를 사용하는 Amazon SQS 대기열로 Amazon S3 이벤트 알림이 전송되지 않는 이유는 무엇입니까?

최종 업데이트 날짜: 2021년 8월 16일

Amazon Simple Storage Service(Amazon S3) 이벤트 알림이 내 Amazon Simple Queue Service(Amazon SQS) 대기열로 전달되지 않습니다. 예를 들어 객체가 S3 버킷에 업로드될 때 Amazon S3 ObjectCreated 이벤트 알림이 수신되지 않습니다. Amazon SQS 대기열에 서버 측 암호화(SSE)가 설정되어 있습니다.

SSE를 사용하는 Amazon SQS 대기열로 S3 이벤트 알림을 받으려면 어떻게 해야 합니까?

해결 방법

S3 이벤트 알림을 구성하여 SSE를 사용하는 Amazon SQS 대기열로 전송하려면 다음 단계를 수행합니다.

고객 관리형 AWS KMS 키 생성 및 키 정책 구성

고객 관리형 AWS Key Management Service(AWS KMS) 키를 사용하여 Amazon SQS 대기열 및 Amazon Simple Notification Service(Amazon SNS) 주제를 암호화할 수 있습니다. 그러나 Amazon S3 서비스 보안 주체에게 암호화된 주제 또는 대기열에서 작업할 수 있는 권한을 부여해야 합니다.

참고: 기본 AWS 관리형 KMS 키는 수정할 수 없습니다. 지정된 서비스 보안 주체에 대한 액세스를 허용하려면 다음 프로세스에 대해 고객 관리형 키를 사용하고 KMS 키에 권한을 추가해야 합니다.

Amazon S3 서비스 보안 주체 권한을 부여하려면 고객 관리형 키 정책에 다음 문을 추가합니다.

참고: "arn:aws:iam::"111122223333":root"를 사용자의 루트 계정 Amazon 리소스 이름(ARN)으로 변경합니다.

{
  "Version": "2012-10-17",
  "Id": "example-ID",
  "Statement": [
    {
      "Sid": "example-statement-ID",
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Enable IAM User Permissions",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::"111122223333":root"
      },
      "Action": "kms:*",
      "Resource": "*"
    }
  ]
}

SQS 대기열 생성 및 Amazon S3 권한 부여

1.    SSE를 사용하도록 구성된 Amazon SQS 대기열을 생성합니다. 자세한 내용은 대기열(콘솔)에 대한 서버 측 암호화(SSE) 구성을 참조하세요.

2.    Amazon S3가 대기열에 메시지를 보낼 수 있도록 하려면 SQS 대기열에 다음과 같은 권한 구문을 추가합니다.

참고: Resource 값을 사용자의 SQS 대기열 ARN으로 변경하고, aws:SourceAccount를 사용자의 AWS 소스 계정 ID로 변경하고, aws:SourceArn을 사용자의 Amazon S3 버킷 ARN으로 변경합니다.

{
  "Version": "2012-10-17",
  "Id": "example-ID",
  "Statement": [
  {
    "Sid": "example-statement-ID",
    "Effect": "Allow",
    "Principal": {
    "Service": "s3.amazonaws.com"
    },
    "Action": "SQS:SendMessage",
    "Resource": "arn:aws:sqs:us-east-1:111122223333:sqs-s3-kms-same-account",
    "Condition": {
    "StringEquals": {
      "aws:SourceAccount": "123456789"
    },
    "ArnLike": {
      "aws:SourceArn": "arn:aws:s3:*:*:hellobucket"
    }
    }
  }
  ]
}

앞의 권한 구문 예제에서 고객 계정 123456789가 소유한 S3 버킷 hellobucket은 ObjectCreated 이벤트 알림을 지정된 SQS 대기열로 보낼 수 있습니다.

S3 이벤트 생성

버킷에 대한 Amazon S3 이벤트를 추가하려면 다음 단계를 따르세요.

1.    S3 콘솔을 연 다음 S3 버킷의 하이퍼링크된 이름을 선택합니다.

2.    속성 탭에서 이벤트 알림 생성을 선택합니다.
이벤트 이름에서 이름을 입력합니다.
이벤트 유형에서 알림을 받을 이벤트 유형을 선택합니다.
대상에서 SQS 대기열을 선택합니다.
SQS 대기열에서 자신의 대기열을 선택합니다.

3.    변경 사항 저장을 선택합니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?