Роль IAM ARN Rekognition создать потоковый процессор - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь использовать распознавание лиц AWS из потокового Kinesis, но застрял на шаге создания потокового процессора с ошибкой:

err AccessDeniedException: код состояния: 400, идентификатор запроса: d871329b-4553-11e9-9d9b-bf3e1c3a90d6

У меня есть конфигурация с:Политика IAM

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "kinesisanalytics:*",
            "kinesisvideo:*",
            "kinesis:*",
            "rekognition:*"
        ],
        "Resource": "*"
    }
]
}

Роль имеет 2 прикрепленные политики, AmazonRekognitionServiceRole и выше настраиваемую политику.

Role's Trust relationships: 

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "rekognition.amazonaws.com"
          },
          "Action": "sts:AssumeRole",
          "Condition": {}
        }
      ]
    }

Код для тестирования (автор Golang):

func createStreamProcessor() {
        sess, err := session.NewSession(&aws.Config{
            Region: aws.String("ap-southeast-2"),
            //Credentials: credentials.NewSharedCredentials("", "default"),
        })
        fmt.Println(err)

        reko := rekognition.New(sess)
        result, err := reko.ListCollections(&rekognition.ListCollectionsInput{
            MaxResults: aws.Int64(100),
        })

        fmt.Println(result)
        fmt.Println(err)
        input := rekognition.CreateStreamProcessorInput{
            Name: aws.String("RdsStreamProcessor"),
            Input: &rekognition.StreamProcessorInput{
                KinesisVideoStream: &rekognition.KinesisVideoStream{
                    Arn: aws.String("arn:aws:kinesisvideo:ap-southeast-2:nnnnnnnnn:stream/redisys-stream/1552295399763"),
                },
            },
            Output: &rekognition.StreamProcessorOutput{
                KinesisDataStream: &rekognition.KinesisDataStream{
                    Arn: aws.String("arn:aws:kinesis:ap-southeast-2:nnnnnnnnn:stream/rds-face-recognition-stream"),
                },
            },
            RoleArn: aws.String("arn:aws:iam::nnnnnnnnn:role/rds_recognition_role"),
            Settings: &rekognition.StreamProcessorSettings{
                FaceSearch: &rekognition.FaceSearchSettings{
                    CollectionId:       aws.String("rds_customers"),
                    FaceMatchThreshold: aws.Float64(90),
                },
            },
        }
        fmt.Println(input)
        outPut, err := reko.CreateStreamProcessor(&input)   
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(outPut)
    }

1 Ответ

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

По состоянию на 27 марта 2019 г. прямой эфир Rekognition доступен только в 4 регионах: США-Восток-1, США-Запад-2, ЕС-Запад-1 и Ап-Северо-Восток-1

...