AWS Доступ к ресурсам IoT на основе тегов НЕ работает - PullRequest
1 голос
/ 16 января 2020

Мы хотели бы настроить некоторые политики, чтобы только «владельцы» устройств могли получить доступ к тени устройства («iot: UpdateThingShadow», «iot: GetThingShadow»).

В соответствии с этим выполните c ( https://docs.aws.amazon.com/iot/latest/developerguide/security_iam_id-based-policy-examples.html#security_iam_id -base-policy-examples-view-thing-tags ) должна быть возможность определить TAG устройства и сравнить его с именем пользователя IAM. Примерно так:

        {
            "Sid": "ConnectToThings",
            "Effect": "Allow",
            "Action": [
                "iot:Connect"
            ],
            "Resource": "arn:aws:iot:*:*:thing/*"
        }
        {
            "Sid": "ViewThingsIfOwner",
            "Effect": "Allow",
            "Action": [
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Resource": "arn:aws:iot:*:*:thing/*",
            "Condition": {
                "StringEquals": {"iot:ResourceTag/Owner": "${aws:username}"}
            }
        }

Мы попробовали использовать следующую конфигурацию без удачи:

IOT thing -> "thing00" с тегом "Владелец = пользователь00"

Пользователь IAM -> «user00» и «user01» с указанной выше политикой IAM.

Ни «user00», ни «user01» не могут получить доступ к теневой службе для «thing00». Мы что-то упустили?

1 Ответ

1 голос
/ 17 января 2020

Согласно это , IoT поддерживает авторизацию на основе тегов. Если вы назначаете теги своим пользователям или ролям, вы можете предоставить доступ только в том случае, если к ресурсу и основному субъекту прикреплен один и тот же тег.

Я бы попробовал следующее условие после присоединения одного и того же тега к ресурсу и пользователь, например, Владелец = Пользователь А.

"Condition": {
    "StringEquals": {
        "aws:ResourceTag/Owner": "${aws:PrincipalTag/Owner}"
     }
}

Если это работает, вы можете пометить свои вещи в группах и назначить атрибут (метку) своим пользователям в соответствии с политикой управления доступом.

Эта статья предполагает, что UpdateThingsShadow может использоваться с PrincipalTag.

...