Профиль экземпляра EC2 для доступа к DynamoDB - PullRequest
0 голосов
/ 16 февраля 2019

Я хочу использовать профиль экземпляра ec2, чтобы позволить моей программе на Python доступ к таблице DynamoDb.Я проверил политику, непосредственно назначая пользователю.Теперь я назначаю эту же политику в качестве профиля экземпляра экземпляру ec2, где выполняется моя работа.Это политика.

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "dynamodb:*"
        ],
        "Resource": "arn:aws:dynamodb:us-east-2:913580688765:table/users"
    }
]
}

Кроме того, я назначил политику пользователю, чтобы она могла передать роль ec2.

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ec2:AssociateIamInstanceProfile",
            "ec2:ReplaceIamInstanceProfileAssociation"
        ],
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": "ec2:DescribeIamInstanceProfileAssociations",
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": "iam:PassRole",
        "Resource": "*"
    }
]
}

Но это не работает.Что мне здесь не хватает?

1 Ответ

0 голосов
/ 16 февраля 2019

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

1) У вас запущен экземпляр EC2, ему назначена роль IAM.
2) Доверительное отношение роли IAM содержит ec2.amazonaws.com.
3) К роли присоединено присвоение политики "dynamodb:*".

Если это сделано, это означает, что все должно быть настроено правильно.

На этом этапе япредложит вам ssh для экземпляра EC2 и проверьте права доступа.Это можно сделать с помощью API-интерфейса Dynamodb CLI AWS , чтобы составить список / описать / получить вызовы API, чтобы подтвердить, что они работают с экземпляром.Если они работают, это означает, что у экземпляра есть разрешения на доступ к DynamodB, и может быть что-то не так с тем, как вы используете профиль экземпляра.

Стоит отметить, что не все операции будут работать на "arn:aws:dynamodb:us-east-2:913580688765:table/users" поскольку это конкретная таблица, а не все таблицы, например "arn:aws:dynamodb:us-east-2:913580688765:table/*".Вызовы API, такие как list-tables, не будут работать, если ресурс представляет собой конкретную таблицу.Вы можете найти список вызовов и прогнозов API DynamodB или они не поддерживают конкретную таблицу, или нет в документации здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...