Ограничить доступ пользователей Cognito к своим ресурсам? - PullRequest
1 голос
/ 05 февраля 2020

У меня есть приложение, которое использует

  • Cognito User Pool / Identity Pool для аутентификации пользователя и предоставления доступа к aws Консоли с использованием пользовательского URL

Я хочу те пользователь должен видеть только свои ресурсы, я много исследовал, но не могу найти никакого решения

Для S3 я пробовал эту политику, но она все еще говорит, что доступ запрещен. Какое фактическое значение "$ {cognito-identity.amazon aws .com: sub}" это даст.

 {
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": ["s3:ListBucket"],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::mybucket"],
      "Condition": {"StringLike": {"s3:prefix": ["${cognito-identity.amazonaws.com:sub}/*"]}}
    },
    {
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::mybucket/${cognito-identity.amazonaws.com:sub}/*"]
    }
  ]
   }

Для EC2 я использую следующую политику: если я жестко запрограммировал какое-то значение в Оно работает, но я хочу, чтобы оно было динамическим c для пользователей Cognito. Я пытался разместить, но не работал.

      {
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ec2:DescribeInstances"
        ],
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": "ec2:RunInstances",
        "Resource": [
            "arn:aws:ec2:*:*:volume/*",
            "arn:aws:ec2:*:*:instance/*"
        ],
        "Condition": {
            "StringEquals": {
                "aws:RequestTag/owner": "<KeyValue>"
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": "ec2:RunInstances",
        "NotResource": [
            "arn:aws:ec2:*:*:volume/*",
            "arn:aws:ec2:*:*:instance/*"
        ]
    },
    {
        "Effect": "Allow",
        "Action": "ec2:CreateVolume",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:RequestTag/owner": "<KeyValue>"
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": [
            "ec2:CreateTags"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "ec2:CreateAction": [
                    "CreateVolume",
                    "RunInstances",
                    "CreateSnapshot"
                ]
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": [
            "ec2:StartInstances",
            "ec2:StopInstances",
            "ec2:RebootInstances",
            "ec2:TerminateInstances",
            "ec2:CreateTags",
            "ec2:DeleteTags",
            "ec2:AttachVolume",
            "ec2:DetachVolume",
            "ec2:DeleteVolume",
            "ec2:DeleteSnapshot"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "ec2:ResourceTag/owner": "<KeyValue>"
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": "ec2:CreateSnapshot",
        "Resource": [
            "arn:aws:ec2:*:*:snapshot/*"
        ],
        "Condition": {
            "StringEquals": {
                "aws:RequestTag/owner": "<KeyValue>"
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": "ec2:CreateSnapshot",
        "Resource": [
            "arn:aws:ec2:*:*:volume/*"
        ],
        "Condition": {
            "StringEquals": {
                "ec2:ResourceTag/owner": "<KeyValue>"
            }
        }
    }
          ]
          }

Чтобы сослаться на мою заявку, вот ссылка на мой Код . Любые выводы будут оценены.

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