Доступ к IAM между учетными записями запрещен с помощью GUI Client, но разрешен через CLI - PullRequest
0 голосов
/ 23 сентября 2019

Я застрял с предоставлением доступа конечного пользователя в общую корзину с несколькими учетными записями, и мне нужна помощь, чтобы выяснить, существуют ли конкретные требования политики для использования клиентов для доступа к корзине, по сравнению с прямым CLI.

Пользователь IAMУправление учетными записями осуществляется в нашей «основной» учетной записи AWS.S3 Bucket предоставляется в нашей учетной записи «Dev» AWS.S3 Bucket в учетной записи Dev зашифровывается с помощью ключа KMS в учетной записи Dev.

Мы настроили нашу политику Bucket для разрешения доступа пользователей.Мы настроили пользовательские политики, чтобы разрешить доступ к корзине S3.Мы настроили пользовательские политики, чтобы разрешить использование ключа KMS.

При использовании CLI наша учетная запись пользователя может успешно получить доступ и использовать корзину S3.При попытке подключиться к клиенту с графическим интерфейсом (Win-SCP, CyberDuck, MAC ForkLift) мы получаем ошибки об отказе в разрешении.

ПОЛИТИКА КОРПУСА

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::[DEVACCOUNT#]:role/EC2-ROLE-FOR-APP-ACCESS",
                    "arn:aws:iam::[COREACCOUNT#]:user/end.user"
                ]
            },
            "Action": "s3:List*",
            "Resource": [
                "arn:aws:s3:::dev-mybucket",
                "arn:aws:s3:::dev-mybucket/*"
            ]
        },
        {
            "Sid": "AllObjectActions",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::[DEVACCOUNT#]:role/EC2-ROLE-FOR-APP-ACCESS",
                    "arn:aws:iam::[COREACCOUNT#]:user/end.user"
                ]
            },
            "Action": [
                "s3:GetObject",
                "s3:Put*"
            ],
            "Resource": "arn:aws:s3:::dev-mybucket/*"
        }
    ]
}

Политика пользователя - доступ к KMS

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUseOfDevAPPSKey",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:Describe*"
            ],
            "Resource": [
                "arn:aws:kms:ca-central-1:[DEVACCOUNT#]:key/[redacted-key-number]"
            ]
        },
        {
            "Sid": "AllowAttachmentOfPersistentResources",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:List*",
                "kms:RevokeGrant"
            ],
            "Resource": [
                "arn:aws:kms:ca-central-1:[DEVACCOUNT#]:key/[redacted-key-number]"
            ],
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        }
    ]
}

Политика пользователя - Access S3 Bucket

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowAccessToMyBucket",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::dev-mybucket/",
                "arn:aws:s3:::dev-mybucket/*"
            ]
        }
    ]

}

С помощью команд aws s3 мы можем 'ls' контент и 'cp' контент с локального на удаленный и с удаленного наlocal.

При настройке доступа с помощью клиентов графического интерфейса мы всегда получаем несколько типичных ошибок типа «отказано в доступе» или «отказано в доступе».

1 Ответ

0 голосов
/ 23 сентября 2019

Клиент GUI, вероятно, выполняет вызов, который не является List*, Put* или GetObject.

Например, он может вызывать GetObjectVersion, GetObjectAcl или GetBucketAcl.

Попробуйте добавить разрешения Get* в дополнение к List*.

Возможно, вы также сможете посмотреть события в вашем AWS CloudTrail следе, чтобы увидеть, чтоопределенные вызовы API были отклонены.

Подробнее см. Указание разрешений в политике - Amazon Simple Storage Service

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