AWS Политика iot по-прежнему разрешает доступ к другим темам через mqtt - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь разрешить использование только тех тем во время подписки и публикации sh через mqtt в aws iot core, которые указаны в aws inline iot policy. Но похоже, что это позволяет и другие темы.

Например, это не должно работать mytopic / test / test-123 / publish123 (но работает), так как publish123 не указано

Ниже это встроенная политика

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:Connect"
      ],
      "Resource": "arn:aws:iot:eu-central-1:123456789:client/${iot:Certificate.Subject.CommonName}"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iot:Subscribe"
      ],
      "Resource": [
        "arn:aws:iot:eu-central-1:123456789:topicfilter/mytopic/test/${iot:Certificate.Subject.CommonName}/subsricption",
        "arn:aws:iot:eu-central-1:123456789:topicfilter/mytopic/test/+/+/+/subsricption"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "iot:Receive"
      ],
      "Resource": "arn:aws:iot:eu-central-1:123456789:topic/io/ksb/m2c/${iot:Certificate.Subject.CommonName}/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iot:Publish"
      ],
      "Resource": [
        "arn:aws:iot:eu-central-1:123456789:topic/mytopic/test/${iot:Certificate.Subject.CommonName}/publish1",
        "arn:aws:iot:eu-central-1:123456789:topic/mytopic/test/${iot:Certificate.Subject.CommonName}/publish2",
        "arn:aws:iot:eu-central-1:123456789:topic/mytopic/test/+/+/+/publish2",
        "arn:aws:iot:eu-central-1:123456789:topic/mytopic/test/${iot:Certificate.Subject.CommonName}/subsricption",
        "arn:aws:iot:eu-central-1:123456789:topic/mytopic/test/+/+/+/subsricption"
      ]
    }
  ]
}

1 Ответ

0 голосов
/ 17 апреля 2020
Подстановочные знаки

MQTT поддерживаются только в фильтрах topi c (topicFilter вместо topic). Фильтры Topi c используются только в части политики subscribe.

Это означает, что публичная часть политики sh должна быть более директивной в списках тем и + или # нельзя использовать. Ресурс topi c позволяет использовать подстановочный знак * в соответствии с использованием IAM. Это работает как жадное регулярное выражение .* при сопоставлении.

...