Github 서비스에 Amazon SQS를 설정할 때 IAM 주위에서 빠졌습니다.

2475 단어 IAMsqsGitHubAWS

개요



Github Webhooks & services 그런데 Amazon SQS 를 설정할 때 최소한의 권한만 가진 IAM Aws access key 합니다.

제목의 Github 서비스라고 하는 것은 이 화면에서 설정하는 사람입니다.



TL; DR



IAM 정책에 sqs:GetQueueUrlsqs:SendMessage 작업에 대한 권한이 필요합니다. 문서에는 sqs:SendMessage 그냥 좋다고 쓰여졌지만

일의 발생



리포지토리에 Amazon SQS 를 설정하려고 Install Notes (아래 이미지) 에는 SendMessage 의 권한이 필요했기 때문에 그 권한만의 IAM 을 만들어 설정했습니다.

그러나 테스트해 보면 SQS가 전달되지 않았습니다. 여기에 설정한 IAM 사용자를 사용하여 자신의 컴퓨터에서 aws 명령을 구입하여 SQS 메시지를 발행하면 성공적으로 작동했습니다.

무엇이 이상한지 잘 모르기 때문에 조사하기로 결정했습니다.



우선은 모두 액션을 허가해 본다



시도에 IAM의 허용된 작업을 sqs:*로 설정했습니다.

이 상태에서 Github에서 테스트하면 제대로 메시지가 전달되었습니다.

거기서 모든 액션을 글머리 기호로 해 1개씩 지워 가기로 했습니다.

SQS의 액션을 모두 늘어놓으면 다음과 같이 됩니다(많은...).
sqs:AddPermission
sqs:ChangeMessageVisibility
sqs:ChangeMessageVisibilityBatch
sqs:CreateQueue
sqs:DeleteMessage
sqs:DeleteMessageBatch
sqs:DeleteQueue
sqs:GetQueueAttributes
sqs:GetQueueUrl
sqs:ListDeadLetterSourceQueues
sqs:ListQueues
sqs:PurgeQueue
sqs:ReceiveMessage
sqs:RemovePermission
sqs:SendMessage
sqs:SendMessageBatch
sqs:SetQueueAttributes

결국 남은 것



1개 지우고는 테스트하고, 또 1개 지우고는 테스트한다고 하는 것을 반복해 계속했습니다(Delete계의 녀석이나 Permission계의는 유석에 관계없다고 생각해서 푹 빠졌지만).

그 결과 마지막으로 남은 것은 다음 두 가지였습니다. GetQueueUrl 를 지우면 또 움직이지 않게 되므로 왠지 사용하고 있는 것 같습니다.
  • sqs:GetQueueUrl
  • sqs:SendMessage

  • 요약



    Github에 Amazon SQS를 설정할 때 다음 두 가지 작업에 대한 권한이 필요합니다.
  • sqs:GetQueueUrl
  • sqs:SendMessage

  • 또한 기사에서는 다루지 않지만 더 안전하게하기 위해 Github의 IP 주소를 제외하고는 메시지를 전달할 수 없도록하는 것이 좋습니다.
    NotIpAddress aws:SourceIp: "192.30.252.0/22" 는 거부 같은 느낌입니다.
    Github の IP アドレスだけ許可する 라는 구성으로 하면(자) 다른 정책으로 덧쓰기되어 어느 IP 주소로부터라도 전달할 수 있는 상태에 어느새에 걸려 버리는 일이 있기 때문에 주의입니다.

    좋은 웹페이지 즐겨찾기