Невозможно назначить ampify: ListDomainAssociations пользователю USER - PullRequest
0 голосов
/ 21 марта 2019

Мне нужно разрешить разработчику доступ к сервису AWS Amplify со всеми разрешениями, кроме «Создание, удаление и обновление ассоциации домена».Я создал следующую политику

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "amplify:ListDomainAssociations",
                "amplify:CreateBranch",
                "amplify:ListBranches",
                "amplify:GetApp",
                "amplify:UpdateApp"
            ],
            "Resource": [
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:apps/*"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "amplify:GetBranch",
                "amplify:ListJobs",
                "amplify:DeleteBranch",
                "amplify:UpdateBranch"
            ],
            "Resource": "arn:aws:amplify:us-east-1:26XXXXXXXXXX:apps/*/branches/*"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "amplify:GetJob",
                "amplify:GetDomainAssociation",
                "amplify:DeleteJob",
                "amplify:StartJob",
                "amplify:StopJob"
            ],
            "Resource": [
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:apps/*/branches/*/jobs/*",
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:apps/*/domains/*"
            ]
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": [
                "amplify:CreateApp",
                "amplify:ListApps"
            ],
            "Resource": "*"
        }
    ]
}

Эта политика была создана с использованием визуального редактора.Как вы можете видеть, amplify:ListDomainAssociations разрешено на arn:aws:amplify:us-east-1:26XXXXXXXXXX:apps/*

. Я присоединяю политику к пользователю, но когда он входит в консоль AWS через браузер, он получает эту ошибку

User: arn:aws:iam::26XXXXXXXXXX:user/tp_amplifyPermissionTest is not authorized to perform: amplify:ListDomainAssociations on resource: arn:aws:amplify:us-east-1:26XXXXXXXXXX:user:/apps/d1xxxxxxxxxxxx/domains

Я вижу, что сразу после : в имени ресурса, присутствующего внутри сообщения об ошибке, есть /, а / отсутствует в имени моей политики arn.Поэтому я попытался добавить это, разрешив amplify:ListDomainAssociations для следующего ресурса arn:aws:amplify:us-east-1:26XXXXXXXXXX:/apps/*, но сообщив, что / является неожиданным, и я не могу его сохранить.

Я также попытался отредактировать ресурсы следующим образом

"Resource": [
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:apps/*",
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:*"
            ]

Но все равно безуспешно.Любая идея, где может быть проблема?

1 Ответ

0 голосов
/ 21 марта 2019

Кажется, в AWS есть некоторая путаница.Некоторые Resources должны быть добавлены с :app, другие с :/app.Вот как я отредактировал политику

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "amplify:ListDomainAssociations",
                "amplify:CreateBranch",
                "amplify:ListBranches",
                "amplify:GetApp",
                "amplify:UpdateApp"
            ],
            "Resource": [
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:apps/*",
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:/apps/*"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "amplify:GetBranch",
                "amplify:ListJobs",
                "amplify:DeleteBranch",
                "amplify:UpdateBranch"
            ],
            "Resource": [
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:apps/*/branches/*",
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:/apps/*/branches/*"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "amplify:GetJob",
                "amplify:GetDomainAssociation",
                "amplify:DeleteJob",
                "amplify:StartJob",
                "amplify:StopJob"
            ],
            "Resource": [
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:apps/*/branches/*/jobs/*",
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:apps/*/domains/*",
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:/apps/*/branches/*/jobs/*",
                "arn:aws:amplify:us-east-1:26XXXXXXXXXX:/apps/*/domains/*"
            ]
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": [
                "amplify:CreateApp",
                "amplify:ListApps"
            ],
            "Resource": "*"
        }
    ]
}

Это сработало для меня

...