SQS - Acess Policy

Jihun Kim·2022년 4월 11일
0

aws solutions architect

목록 보기
47/57
post-thumbnail

아래와 같이 교차 계정에 대해 SQS를 사용할 수도 있다. 이럴 때는 EC2 인스턴스를 가진 계정을 허용하는 access policy를 SQS에 작성해야 한다.

아래의 경우, S3에 객체가 업로드 되자마자 SQS로 메시지를 전송하도록 한다.
Condition에는 S3 bucket(bucket 1)의 버킷명 및 계정 소유주의 계정 번호 가 들어간다.

업로드시마다 알림을 생성하려면 아래와 같이 설정하면 된다.

  1. S3를 생성한 뒤 속성 탭에서 이벤트 알림 생성을 클릭하고

  2. 아래와 같이 SQS 대기열을 선택하면 미리 생성해 놓은 SQS 대기열을 고를 수 있다(아래 화면에서는 만들어 놓은 것이 없어 뜨지 않았다).

    • 이 때, 3번에서와 같이 Access Policy가 설정되어 있지 않으면 알림 생성 중 오류가 생기기 때문에 3번의 policy 설정을 마무리 한 뒤 알림 생성을 마무리 해야 한다.

  3. 그 다음 SQS에서 Access policy를 아래와 같이 수정한다.
    - 여기에서 가져왔다.

    • Resource에는 SQS 리소스 ARN, awsexamplebucket1에는 버킷명, bucket-owner-account-id에는 버킷 소유주의 계정 번호가 들어가야 한다.
    • 이를 다 설정했으면 다시 2번으로 돌아가서 이벤트 알림 생성을 마무리 한다.
      {
        "Version": "2012-10-17",
        "Id": "example-ID",
        "Statement": [
          {
            "Sid": "example-statement-ID",
            "Effect": "Allow",
            "Principal": {
              "Service": "s3.amazonaws.com"
            },
            "Action": [
              "SQS:SendMessage"
            ],
            "Resource": "<SQS-queue-ARN>",
            "Condition": {
              "ArnLike": {
                "aws:SourceArn": "arn:aws:s3:*:*:<awsexamplebucket1>"
              },
              "StringEquals": {
                "aws:SourceAccount": "<bucket-owner-account-id>"
              }
            }
          }
        ]
      }
profile
쿄쿄

0개의 댓글