share facebook facebook2 twitter menu hatena pocket slack

2014.04.11 FRI

SQSのアクセス制限がうまくいかない

岸上 健太郎

WRITTEN BY岸上 健太郎

cloudpack の がみさんです。

※FAQにAWSアカウントはOKって書いてあった。 匿名の場合はIP見たりするってことのような感じがする。

http://aws.amazon.com/jp/sqs/faqs/

前回作成したメッセージキューのアクセス制限をかけてみたいと思いました。
参考ドキュメント

SQS Poh3cy

{
  "Version": "2012-10-17",
  "Id": "cd3ad3d9-2776-4ef1-a904-4c229d1642ee",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Deny",
      "Action": [
        "sqs:SendMessage",
        "sqs:ReceiveMessage"
      ],
      "Resource": "arn:aws:sqs:ap-northeast-1:075069182505:myque",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "54.199.136.217/32"
        }
      }
    }
  ]
}

テスト

send/receiveをDenyしたIPアドレスを割り当ててるEC2からリクエストを投げてみます

[root@ip-10-0-0-98 ~]# curl ifconfig.me
54.199.136.217
[root@ip-10-0-0-98 ~]# aws sqs send-message --queue-url https://ap-northeast-1.queue.amazonaws.com/075069182505/myque --message-body hello
{
    "MD5OfMessageBody": "5d41402abc4b2a76b9719d911017c592",
    "MessageId": "9cfd6d60-3203-4c85-8675-3912cd688541"
}
[root@ip-10-0-0-98 ~]# aws sqs receive-message --queue-url https://ap-northeast-1.queue.amazonaws.com/075069182505/myque
{
    "Messages": [
        {
            "Body": "hello",
            "ReceiptHandle": "cOJv9qrD9XLVlpsfwYn3xZcjweCMUMv59bttg4XRtlKxIbNwhsQk/4OcfC58iNk2hEQoEbtZXrcmrLllzyQfgrdwb2Qq95IAU0rni/x/6spEg+SgsYeQXRbbyVTo/Q1jvZiEthtihOcf78S+i5Ww1oMRYu3qSynS0lgTUvqGM+apOBrYWftrdOxOc09XT96JvcGh6jTO1OwywUprvYpLR8bBXGxXvBdx0i03TskBNoa6XEe4XPPql8iwCgyi4udrjtjvY9pWnYiR3HSc4MtBJp6tEwVjc/BcakZ3hD0rlp1QPNvnyKIM4w==",
            "MD5OfBody": "5d41402abc4b2a76b9719d911017c592",
            "MessageId": "9b75a443-9634-44b3-b256-61fecd9b5b95"
        }
    ]
}

通っちゃった……(‘A`) ( ‘д‘⊂彡☆))Д´) パーン

今日の収穫

  • IP制限かけるやりかたは他にありそう
  • 制限かけててもコマンド実行時に参照するaccess_key所有者がSQSのPrincipal(AWS Account Number)と同一だったら通すってこと?
  • IAM覚えたら天下取れる気がした。というぐらい難しい気がした。
  • ifconfig.me知らなかったので教えていただいた先輩Y氏に感謝。

色々修行不足。

こちらの記事はなかの人(がみさん)監修のもと掲載しています。
元記事は、こちら

岸上 健太郎

岸上 健太郎

頑張るぞ!