Conceder permissões ao Amazon ML para gerar previsões no Amazon S3 - Amazon Machine Learning

Não estamos mais atualizando o serviço Amazon Machine Learning nem aceitando novos usuários para ele. Essa documentação está disponível para usuários existentes, mas não estamos mais atualizando-a. Para obter mais informações, consulte O que é o Amazon Machine Learning.

Conceder permissões ao Amazon ML para gerar previsões no Amazon S3

Para salvar a saída dos resultados da operação de previsão em lote no Amazon S3, você deve conceder ao Amazon ML as seguintes permissões para o local de saída, que é fornecido como entrada para a operação de criação de previsão em lote:

  • Permissão GetObject no prefixo e no bucket do S3.

  • Permissão PutObject no prefixo e no bucket do S3.

  • Permissão PutObjectAcl no prefixo e no bucket do S3.

    • O Amazon ML precisa dessa permissão para garantir que possa conceder a permissão bucket-owner-full-control padrão da ACL à sua conta da AWS, depois que forem criados objetos.

  • Permissão ListBucket no bucket do S3. Diferentemente de outras ações, ListBucket deve receber permissões em todo o bucket (em vez de no prefixo). No entanto, você pode definir o escopo da permissão como um prefixo específico usando uma cláusula Condition.

Se você usar o console do Amazon ML para criar a solicitação de previsão em lote, essas permissões poderão ser adicionadas ao bucket para você. Você será solicitado a confirmar se deseja adicioná-las à medida que concluir as etapas do assistente.

O exemplo de política a seguir mostra como conceder permissão ao Amazon ML para gravar dados no local de exemplo s3://examplebucket/exampleprefix e, ao mesmo tempo, definir o escopo da permissão ListBucket apenas ao caminho de entrada exampleprefix e conceder a permissão ao Amazon ML para definir as ACLs de objetos put no prefixo de saída:

{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "machinelearning.amazonaws.com"}, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::examplebucket/exampleprefix/*" "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } "ArnLike": { "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*" } } }, { "Effect": "Allow", "Principal": { "Service": "machinelearning.amazonaws.com"}, "Action": "s3:PutObjectAcl", "Resource": "arn:aws:s3:::examplebucket/exampleprefix/*", "Condition": { "StringEquals": { "s3:x-amz-acl":"bucket-owner-full-control" } "StringEquals": { "aws:SourceAccount": "123456789012" } "ArnLike": { "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*" } } }, { "Effect": "Allow", "Principal": {"Service": "machinelearning.amazonaws.com"}, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::examplebucket", "Condition": { "StringLike": { "s3:prefix": "exampleprefix/*" } "StringEquals": { "aws:SourceAccount": "123456789012" } "ArnLike": { "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*" } } }] }

Para aplicar essa política a seus dados, você deve editar a declaração de política associada ao bucket do S3 em que os dados são armazenados.

Para editar a política de permissões para um bucket do S3 (usando o console antigo)
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Selecione o nome do bucket onde os dados residem.

  3. Escolha Properties (Propriedades).

  4. Escolha Edit bucket policy (Editar política de bucket)

  5. Insira a política mostrada acima, personalizando-a para atender às suas necessidades, e escolha Save (Salvar).

  6. Escolha Save (Salvar).

Para editar a política de permissões para um bucket do S3 (usando o console novo)
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Escolha o nome do bucket e, em seguida, Permissions (Permissões).

  3. Escolha Bucket Policy.

  4. Insira a política mostrada acima, personalizando-a para atender às suas necessidades.

  5. Escolha Save (Salvar).