Controle de acesso com o Amazon Data Firehose - Amazon Data Firehose

O Amazon Data Firehose era conhecido anteriormente como Amazon Kinesis Data Firehose

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Controle de acesso com o Amazon Data Firehose

As seções a seguir abordam como controlar o acesso de e para seus recursos do Amazon Data Firehose. As informações que eles abordam incluem como conceder acesso ao seu aplicativo para que ele possa enviar dados para o stream do Firehose. Eles também descrevem como você pode conceder ao Amazon Data Firehose acesso ao seu bucket do Amazon Simple Storage Service (Amazon S3), ao cluster do Amazon Redshift ou ao cluster do OpenSearch Amazon Service, bem como às permissões de acesso necessárias se você usar Datadog, Dynatrace, MongoDB, New Relic, Splunk ou Sumo LogicMonitor Logic como seu destino. Por fim, você encontrará neste tópico orientações sobre como configurar o Amazon Data Firehose para que ele possa entregar dados a um destino que pertença a uma conta diferente AWS . A tecnologia para gerenciar todas essas formas de acesso é AWS Identity and Access Management (IAM). Para obter mais informações sobre o IAM, consulte O que é o IAM?.

Conceda ao seu aplicativo acesso aos recursos do Amazon Data Firehose

Para dar ao seu aplicativo acesso ao stream do Firehose, use uma política semelhante a este exemplo. Você pode ajustar as operações de API individuais às quais concede acesso modificando a seção Action ou conceder acesso a todas as operações com "firehose:*".

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:DeleteDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:UpdateDestination" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/delivery-stream-name" ] } ] }

Conceda ao Amazon Data Firehose acesso ao seu cluster privado do Amazon MSK

Se a origem do seu stream do Firehose for um cluster privado do Amazon MSK, use uma política semelhante a este exemplo.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": [ "kafka:CreateVpcConnection" ], "Resource": "cluster-arn" } ] }

Permita que o Amazon Data Firehose assuma uma função do IAM

Esta seção descreve as permissões e políticas que concedem ao Amazon Data Firehose acesso para ingerir, processar e entregar dados da origem ao destino.

nota

Se você usar o console para criar um stream do Firehose e escolher a opção de criar uma nova função, AWS anexará a política de confiança necessária à função. Se você quiser que o Amazon Data Firehose use uma função do IAM existente ou crie uma função por conta própria, anexe as seguintes políticas de confiança a essa função para que o Amazon Data Firehose possa assumi-la. Edite as políticas para substituir o ID da conta pelo ID da sua AWS conta. Para obter informações sobre como modificar a relação de confiança de uma função, consulte Modificar uma função.

O Amazon Data Firehose usa uma função do IAM para todas as permissões que o stream do Firehose precisa para processar e entregar dados. Certifique-se de que as seguintes políticas de confiança estejam associadas a essa função para que o Amazon Data Firehose possa assumi-la.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "account-id" } } }] }

Essa política usa a chave de contexto de sts:ExternalId condição para garantir que somente as atividades do Amazon Data Firehose originadas da sua AWS conta possam assumir essa função do IAM. Para obter mais informações, consulte O problema de "confused deputy" no Guia do usuário do IAM.

Se você escolher o Amazon MSK como fonte para seu stream do Firehose, deverá especificar outra função do IAM que conceda ao Amazon Data Firehose permissões para ingerir dados de origem do cluster Amazon MSK especificado. Certifique-se de que as seguintes políticas de confiança estejam associadas a essa função para que o Amazon Data Firehose possa assumi-la.

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

Certifique-se de que essa função que concede ao Amazon Data Firehose permissões para ingerir dados de origem do cluster Amazon MSK especificado conceda as seguintes permissões:

{ "Version": "2012-10-17", "Statement": [{ "Effect":"Allow", "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "CLUSTER-ARN" }, { "Effect":"Allow", "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "TOPIC-ARN" }] }

Conceda acesso ao Amazon Data Firehose AWS Glue para conversão de formato de dados

Se seu stream do Firehose realizar a conversão do formato de dados, o Amazon Data Firehose fará referência às definições de tabela armazenadas em. AWS Glue Para dar ao Amazon Data Firehose o acesso necessário AWS Glue, adicione a seguinte declaração à sua política. Para obter informações sobre como encontrar o ARN da tabela, consulte Especificando ARNs de recursos do AWS Glue.

[{ "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTableVersion", "glue:GetTableVersions" ], "Resource": "table-arn" }, { "Sid": "GetSchemaVersion", "Effect": "Allow", "Action": [ "glue:GetSchemaVersion" ], "Resource": ["*"] }]

A política recomendada para obter esquemas do registro de esquemas não tem restrições de recursos. Para obter mais informações, consulte exemplos de IAM para desserializadores no Guia do AWS Glue desenvolvedor.

nota

Atualmente, não AWS Glue é suportado nas regiões de Israel (Tel Aviv), Ásia-Pacífico (Jacarta) ou Oriente Médio (EAU). Se você estiver trabalhando com o Amazon Data Firehose na região Ásia-Pacífico (Jacarta) ou na região do Oriente Médio (EAU), certifique-se de dar acesso ao Amazon Data Firehose AWS Glue em uma das regiões onde há suporte no momento. AWS Glue Há suporte para interoperabilidade entre regiões entre Data Firehose e. AWS Glue Para obter mais informações sobre as regiões em AWS Glue que há suporte, consulte https://docs.aws.amazon.com/general/latest/gr/glue.html

Conceda ao Amazon Data Firehose acesso a um destino do Amazon S3

Quando você está usando um destino do Amazon S3, o Amazon Data Firehose entrega dados para seu bucket do S3 e, opcionalmente, pode usar uma AWS KMS chave que você possui para criptografia de dados. Se o registro de erros estiver ativado, o Amazon Data Firehose também enviará erros de entrega de dados para seu grupo de CloudWatch registros e streams. Você precisa ter uma função do IAM ao criar um stream do Firehose. O Amazon Data Firehose assume essa função do IAM e obtém acesso ao bucket, à chave e ao grupo de CloudWatch registros e fluxos especificados.

Use a seguinte política de acesso para permitir que o Amazon Data Firehose acesse seu bucket e sua chave do S3. AWS KMS Se você não tiver o bucket do S3, adicione s3:PutObjectAcl à lista de ações do Amazon S3. Isso concede ao proprietário do bucket acesso total aos objetos entregues pelo Amazon Data Firehose.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

A política acima também tem uma declaração que permite o acesso ao Amazon Kinesis Data Streams. Se você não usar o Kinesis Data Streams como fonte de dados, poderá remover essa instrução. Se você usar o Amazon MSK como sua fonte, poderá substituir essa declaração pela seguinte:

{ "Sid":"", "Effect":"Allow", "Action":[ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:cluster/{{mskClusterName}}/{{clusterUUID}}" }, { "Sid":"", "Effect":"Allow", "Action":[ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:topic/{{mskClusterName}}/{{clusterUUID}}/{{mskTopicName}}" }, { "Sid":"", "Effect":"Allow", "Action":[ "kafka-cluster:DescribeGroup" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:group/{{mskClusterName}}/{{clusterUUID}}/*" }

Para obter mais informações sobre como permitir que outros AWS serviços acessem seus AWS recursos, consulte Como criar uma função para delegar permissões a um AWS serviço no Guia do usuário do IAM.

Para saber como conceder ao Amazon Data Firehose acesso a um destino do Amazon S3 em outra conta, consulte. Entrega entre contas a um destino do Amazon S3

Conceda ao Amazon Data Firehose acesso a um destino do Amazon Redshift

Consulte o seguinte ao conceder acesso ao Amazon Data Firehose ao usar um destino do Amazon Redshift.

Perfil do IAM e políticas de acesso padrão

Quando você está usando um destino do Amazon Redshift, o Amazon Data Firehose entrega dados para seu bucket do S3 como um local intermediário. Opcionalmente, ele pode usar qualquer AWS KMS chave que você possua para criptografia de dados. Em seguida, o Amazon Data Firehose carrega os dados do bucket S3 para seu cluster provisionado do Amazon Redshift ou grupo de trabalho Amazon Redshift Serverless. Se o registro de erros estiver ativado, o Amazon Data Firehose também enviará erros de entrega de dados para seu grupo de CloudWatch registros e streams. O Amazon Data Firehose usa o nome de usuário e a senha especificados do Amazon Redshift para acessar seu cluster provisionado ou grupo de trabalho Amazon Redshift Serverless e usa uma função do IAM para acessar o bucket, a chave, o grupo de logs e os streams especificados. CloudWatch Você precisa ter uma função do IAM ao criar um stream do Firehose.

Use a seguinte política de acesso para permitir que o Amazon Data Firehose acesse seu bucket e sua chave do S3. AWS KMS Se você não possui o bucket do S3, adicione-o s3:PutObjectAcl à lista de ações do Amazon S3, que concede ao proprietário do bucket acesso total aos objetos entregues pelo Amazon Data Firehose. A política acima também tem uma instrução que concede acesso ao Amazon Kinesis Data Streams. Se você não usar o Kinesis Data Streams como fonte de dados, poderá remover essa instrução.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Para obter mais informações sobre como permitir que outros AWS serviços acessem seus AWS recursos, consulte Como criar uma função para delegar permissões a um AWS serviço no Guia do usuário do IAM.

Acesso da VPC a um cluster provisionado pelo Amazon Redshift ou a um grupo de trabalho do Amazon Redshift sem servidor

Se o cluster provisionado do Amazon Redshift ou um grupo de trabalho do Amazon Redshift sem servidor estiver em uma nuvem privada virtual (VPC), ele deve ser acessível publicamente com um endereço IP público. Além disso, conceda ao Amazon Data Firehose acesso ao seu cluster provisionado do Amazon Redshift ou ao grupo de trabalho Amazon Redshift Serverless desbloqueando os endereços IP do Amazon Data Firehose. Atualmente, o Amazon Data Firehose usa um bloco CIDR para cada região disponível:

  • 13.58.135.96/27 para Leste dos EUA (Ohio)

  • 52.70.63.192/27 para Leste dos EUA (Norte da Virgínia)

  • 13.57.135.192/27 para Oeste dos EUA (N. da Califórnia)

  • 52.89.255.224/27 para Oeste dos EUA (Oregon)

  • 18.253.138.96/27para AWS GovCloud (Leste dos EUA)

  • 52.61.204.160/27para AWS GovCloud (Oeste dos EUA)

  • 35.183.92.128/27 para Canadá (Central)

  • 40.176.98.192/27por Canada West (Calgary)

  • 18.162.221.32/27 para Ásia-Pacífico (Hong Kong)

  • 13.232.67.32/27 para Ásia-Pacífico (Mumbai)

  • 18.60.192.128/27 para Ásia-Pacífico (Hyderabad)

  • 13.209.1.64/27 para Ásia-Pacífico (Seul)

  • 13.228.64.192/27 para Ásia-Pacífico (Singapura)

  • 13.210.67.224/27 para Ásia-Pacífico (Sydney)

  • 108.136.221.64/27 para Ásia-Pacífico (Jacarta)

  • 13.113.196.224/27 para Ásia-Pacífico (Tóquio)

  • 13.208.177.192/27 para Ásia-Pacífico (Osaka)

  • 52.81.151.32/27 para China (Pequim)

  • 161.189.23.64/27 para China (Ningxia)

  • 16.62.183.32/27 para Europa (Zurique)

  • 35.158.127.160/27 para Europa (Frankfurt)

  • 52.19.239.192/27 para Europa (Irlanda)

  • 18.130.1.96/27 para Europa (Londres)

  • 35.180.1.96/27 para Europa (Paris)

  • 13.53.63.224/27 para Europa (Estocolmo)

  • 15.185.91.0/27 para Oriente Médio (Bahrein)

  • 18.228.1.128/27 para América do Sul (São Paulo)

  • 15.161.135.128/27 para Europa (Milão)

  • 13.244.121.224/27 para África (Cidade do Cabo)

  • 3.28.159.32/27 para Oriente Médio (Emirados Árabes Unidos)

  • 51.16.102.0/27 para Israel (Tel Aviv)

  • 16.50.161.128/27 para Ásia-Pacífico (Melbourne)

Para obter mais informações sobre como desbloquear endereços IP, consulte a etapa Autorizar o acesso ao cluster no Guia de conceitos básicos do Amazon Redshift.

Conceda ao Amazon Data Firehose acesso a um destino de serviço público OpenSearch

Quando você está usando um destino de OpenSearch serviço, o Amazon Data Firehose entrega dados para seu cluster de OpenSearch serviços e, simultaneamente, faz backup de todos os documentos falhados ou de todos os documentos em seu bucket do S3. Se o registro de erros estiver ativado, o Amazon Data Firehose também enviará erros de entrega de dados para seu grupo de CloudWatch registros e streams. O Amazon Data Firehose usa uma função do IAM para acessar o domínio de OpenSearch serviço, o bucket do S3, a AWS KMS chave, o grupo de CloudWatch registros e os fluxos especificados. Você precisa ter uma função do IAM ao criar um stream do Firehose.

Use a seguinte política de acesso para permitir que o Amazon Data Firehose acesse seu bucket, domínio de OpenSearch serviço e chave do S3. AWS KMS Se você não possui o bucket do S3, adicione-o s3:PutObjectAcl à lista de ações do Amazon S3, que concede ao proprietário do bucket acesso total aos objetos entregues pelo Amazon Data Firehose. A política acima também tem uma instrução que concede acesso ao Amazon Kinesis Data Streams. Se você não usar o Kinesis Data Streams como fonte de dados, poderá remover essa instrução.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "es:DescribeDomain", "es:DescribeDomains", "es:DescribeDomainConfig", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name", "arn:aws:es:region:account-id:domain/domain-name/*" ] }, { "Effect": "Allow", "Action": [ "es:ESHttpGet" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name/_all/_settings", "arn:aws:es:region:account-id:domain/domain-name/_cluster/stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_mapping/type-name", "arn:aws:es:region:account-id:domain/domain-name/_nodes", "arn:aws:es:region:account-id:domain/domain-name/_nodes/stats", "arn:aws:es:region:account-id:domain/domain-name/_nodes/*/stats", "arn:aws:es:region:account-id:domain/domain-name/_stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_stats", "arn:aws:es:region:account-id:domain/domain-name/" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Para obter mais informações sobre como permitir que outros AWS serviços acessem seus AWS recursos, consulte Como criar uma função para delegar permissões a um AWS serviço no Guia do usuário do IAM.

Para saber como conceder ao Amazon Data Firehose acesso a um cluster de OpenSearch serviços em outra conta, consulte. Entrega entre contas para um destino OpenSearch de serviço

Conceda ao Amazon Data Firehose acesso a um destino de OpenSearch serviço em uma VPC

Se o seu domínio de OpenSearch serviço estiver em uma VPC, certifique-se de conceder ao Amazon Data Firehose as permissões descritas na seção anterior. Além disso, você precisa conceder ao Amazon Data Firehose as seguintes permissões para permitir que ele acesse a VPC do seu domínio OpenSearch de serviço.

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

  • ec2:DeleteNetworkInterface

Importante

Não revogue essas permissões depois de criar o stream do Firehose. Se você revogar essas permissões, seu stream do Firehose será degradado ou deixará de fornecer dados ao OpenSearch seu domínio de serviço sempre que o serviço tentar consultar ou atualizar ENIs.

Importante

Ao especificar sub-redes para entregar dados ao destino em uma VPC privada, verifique se você tem um número suficiente de endereços IP livres nas sub-redes escolhidas. Se não houver um endereço IP gratuito disponível em uma sub-rede especificada, o Firehose não poderá criar ou adicionar ENIs para a entrega de dados na VPC privada, e a entrega será degradada ou falhará.

Ao criar ou atualizar seu stream do Firehose, você especifica um grupo de segurança para o Firehose usar ao enviar dados para seu domínio de serviço. OpenSearch Você pode usar o mesmo grupo de segurança usado pelo domínio do OpenSearch Serviço ou um diferente. Se você especificar um grupo de segurança diferente, certifique-se de que ele permita tráfego HTTPS de saída para o grupo de segurança do domínio do OpenSearch Serviço. Além disso, certifique-se de que o grupo de segurança do domínio OpenSearch Service permita tráfego HTTPS do grupo de segurança que você especificou ao configurar seu stream do Firehose. Se você usa o mesmo grupo de segurança para o stream do Firehose e para o domínio OpenSearch Service, verifique se a regra de entrada do grupo de segurança permite tráfego HTTPS. Para obter mais informações sobre regras de grupo de segurança, consulte Regras de grupo de segurança na documentação da Amazon VPC.

Conceda ao Amazon Data Firehose acesso a um destino público OpenSearch sem servidor

Quando você está usando um destino OpenSearch sem servidor, o Amazon Data Firehose entrega dados para sua coleção OpenSearch sem servidor e, ao mesmo tempo, faz backup de todos os documentos falhados ou de todos os documentos em seu bucket do S3. Se o registro de erros estiver ativado, o Amazon Data Firehose também enviará erros de entrega de dados para seu grupo de CloudWatch registros e streams. O Amazon Data Firehose usa uma função do IAM para acessar a coleção OpenSearch Serverless, o bucket S3, o grupo e os fluxos de AWS KMS chaves e CloudWatch logs especificados. Você precisa ter uma função do IAM ao criar um stream do Firehose.

Use a seguinte política de acesso para permitir que o Amazon Data Firehose acesse seu bucket S3, domínio OpenSearch sem servidor e chave. AWS KMS Se você não possui o bucket do S3, adicione-o s3:PutObjectAcl à lista de ações do Amazon S3, que concede ao proprietário do bucket acesso total aos objetos entregues pelo Amazon Data Firehose. A política acima também tem uma instrução que concede acesso ao Amazon Kinesis Data Streams. Se você não usar o Kinesis Data Streams como fonte de dados, poderá remover essa instrução.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] }, { "Effect": "Allow", "Action": "aoss:APIAccessAll", "Resource": "arn:aws:aoss:region:account-id:collection/collection-id" } ] }

Além da política acima, você também deve configurar o Amazon Data Firehose para ter as seguintes permissões mínimas atribuídas em uma política de acesso a dados:

[ { "Rules":[ { "ResourceType":"index", "Resource":[ "index/target-collection/target-index" ], "Permission":[ "aoss:WriteDocument", "aoss:UpdateIndex", "aoss:CreateIndex" ] } ], "Principal":[ "arn:aws:sts::account-id:assumed-role/firehose-delivery-role-name/*" ] } ]

Para obter mais informações sobre como permitir que outros AWS serviços acessem seus AWS recursos, consulte Como criar uma função para delegar permissões a um AWS serviço no Guia do usuário do IAM.

Conceda ao Amazon Data Firehose acesso a um destino OpenSearch sem servidor em uma VPC

Se sua coleção OpenSearch Serverless estiver em uma VPC, certifique-se de conceder ao Amazon Data Firehose as permissões descritas na seção anterior. Além disso, você precisa conceder ao Amazon Data Firehose as seguintes permissões para permitir que ele acesse a VPC da sua OpenSearch coleção Serverless.

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

  • ec2:DeleteNetworkInterface

Importante

Não revogue essas permissões depois de criar o stream do Firehose. Se você revogar essas permissões, seu stream do Firehose será degradado ou deixará de fornecer dados ao OpenSearch seu domínio de serviço sempre que o serviço tentar consultar ou atualizar ENIs.

Importante

Ao especificar sub-redes para entregar dados ao destino em uma VPC privada, verifique se você tem um número suficiente de endereços IP livres nas sub-redes escolhidas. Se não houver um endereço IP gratuito disponível em uma sub-rede especificada, o Firehose não poderá criar ou adicionar ENIs para a entrega de dados na VPC privada, e a entrega será degradada ou falhará.

Ao criar ou atualizar seu stream do Firehose, você especifica um grupo de segurança para o Firehose usar ao enviar dados para sua coleção Serverless. OpenSearch Você pode usar o mesmo grupo de segurança que a coleção OpenSearch Serverless usa ou um diferente. Se você especificar um grupo de segurança diferente, certifique-se de que ele permita tráfego HTTPS de saída para o grupo de segurança da coleção OpenSearch Serverless. Além disso, certifique-se de que o grupo de segurança da coleção OpenSearch Serverless permita tráfego HTTPS do grupo de segurança que você especificou ao configurar seu stream do Firehose. Se você usa o mesmo grupo de segurança para o stream do Firehose e para a coleção OpenSearch Serverless, verifique se a regra de entrada do grupo de segurança permite tráfego HTTPS. Para obter mais informações sobre regras de grupo de segurança, consulte Regras de grupo de segurança na documentação da Amazon VPC.

Conceda ao Amazon Data Firehose acesso a um destino Splunk

Quando você usa um destino Splunk, o Amazon Data Firehose entrega dados para seu endpoint do Splunk HTTP Event Collector (HEC). Ele também faz backup desses dados no bucket do Amazon S3 que você especificar e, opcionalmente, você pode usar uma AWS KMS chave que você possui para a criptografia do lado do servidor do Amazon S3. Se o registro de erros estiver ativado, o Firehose enviará erros de entrega de dados para seus fluxos de CloudWatch registro. Você também pode usar AWS Lambda para transformação de dados.

Se você usa um balanceador de AWS carga, certifique-se de que seja um Classic Load Balancer ou um Application Load Balancer. Além disso, habilite sessões fixas com base na duração com a expiração de cookies desativada para o Classic Load Balancer e a expiração é definida como máxima (7 dias) para o Application Load Balancer. Para obter informações sobre como fazer isso, consulte Duration-Based Session Stickiness for Classic Load Balancer ou an Application Load Balancer.

Você deve ter uma função do IAM ao criar um stream do Firehose. O Firehose assume essa função do IAM e obtém acesso ao bucket, à chave, ao grupo de CloudWatch registros e aos fluxos especificados.

Use a seguinte política de acesso para permitir que o Amazon Data Firehose acesse seu bucket do S3. Se você não possui o bucket do S3, adicione-o s3:PutObjectAcl à lista de ações do Amazon S3, que concede ao proprietário do bucket acesso total aos objetos entregues pelo Amazon Data Firehose. Essa política também concede ao Amazon Data Firehose acesso CloudWatch para registro de erros e transformação de AWS Lambda dados. A política também tem uma instrução que permite o acesso ao Amazon Kinesis Data Streams. Se você não usar o Kinesis Data Streams como fonte de dados, poderá remover essa instrução. O Amazon Data Firehose não usa o IAM para acessar o Splunk. Para acessar o Splunk, ele usa o token HEC.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Para obter mais informações sobre como permitir que outros AWS serviços acessem seus AWS recursos, consulte Como criar uma função para delegar permissões a um AWS serviço no Guia do usuário do IAM.

Acesso ao Splunk no VPC

Se a plataforma do Splunk estiver em uma VPC, ela será acessível ao público com um endereço IP público. Além disso, conceda ao Amazon Data Firehose acesso à sua plataforma Splunk desbloqueando os endereços IP do Amazon Data Firehose. Atualmente, o Amazon Data Firehose usa os seguintes blocos CIDR.

  • 18.216.68.160/27, 18.216.170.64/27, 18.216.170.96/27 para Leste dos EUA (Ohio)

  • 34.238.188.128/26, 34.238.188.192/26, 34.238.195.0/26 para Leste dos EUA (Norte da Virgínia)

  • 13.57.180.0/26 para Oeste dos EUA (N. da Califórnia)

  • 34.216.24.32/27, 34.216.24.192/27, 34.216.24.224/27 para Oeste dos EUA (Oregon)

  • 18.253.138.192/26para AWS GovCloud (Leste dos EUA)

  • 52.61.204.192/26para AWS GovCloud (Oeste dos EUA)

  • 18.162.221.64/26 para Ásia-Pacífico (Hong Kong)

  • 13.232.67.64/26 para Ásia-Pacífico (Mumbai)

  • 13.209.71.0/26 para Ásia-Pacífico (Seul)

  • 13.229.187.128/26 para Ásia-Pacífico (Singapura)

  • 13.211.12.0/26 para Ásia-Pacífico (Sydney)

  • 13.230.21.0/27, 13.230.21.32/27 para Ásia-Pacífico (Tóquio)

  • 51.16.102.64/26 para Israel (Tel Aviv)

  • 35.183.92.64/26 para Canadá (Central)

  • 40.176.98.128/26por Canada West (Calgary)

  • 18.194.95.192/27, 18.194.95.224/27, 18.195.48.0/27 para Europa (Frankfurt)

  • 34.241.197.32/27, 34.241.197.64/27, 34.241.197.96/27 para Europa (Irlanda)

  • 18.130.91.0/26 para Europa (Londres)

  • 35.180.112.0/26 para Europa (Paris)

  • 13.53.191.0/26 para Europa (Estocolmo)

  • 15.185.91.64/26 para Oriente Médio (Bahrein)

  • 18.228.1.192/26 para América do Sul (São Paulo)

  • 15.161.135.192/26 para Europa (Milão)

  • 13.244.165.128/26 para África (Cidade do Cabo)

  • 13.208.217.0/26 para Ásia-Pacífico (Osaka)

  • 52.81.151.64/26 para China (Pequim)

  • 161.189.23.128/26 para China (Ningxia)

  • 108.136.221.128/26 para Ásia-Pacífico (Jacarta)

  • 3.28.159.64/26 para Oriente Médio (Emirados Árabes Unidos)

  • 51.16.102.64/26 para Israel (Tel Aviv)

  • 16.62.183.64/26 para Europa (Zurique)

  • 18.60.192.192/26 para Ásia-Pacífico (Hyderabad)

  • 16.50.161.192/26 para Ásia-Pacífico (Melbourne)

Acesso ao Snowflake ou ao endpoint HTTP

Não há um subconjunto de intervalos de endereços AWS IP específicos para o Amazon Data Firehose quando o destino é um endpoint HTTP ou clusters públicos do Snowflake.

Para adicionar o Firehose a uma lista de permissões para clusters públicos do Snowflake ou aos seus endpoints públicos de HTTP ou HTTPS, adicione todos os intervalos de endereços AWS IP atuais às suas regras de entrada.

nota

As notificações nem sempre são provenientes de endereços IP na mesma AWS região do tópico associado. Você deve incluir o intervalo AWS de endereços IP para todas as regiões.

Conceda ao Amazon Data Firehose acesso a um destino Snowflake

Quando você usa o Snowflake como destino, o Firehose entrega dados para uma conta do Snowflake usando o URL da sua conta do Snowflake. Ele também faz backup dos dados de erro no bucket do Amazon Simple Storage Service que você especifica e, opcionalmente, você pode usar uma AWS Key Management Service chave que você possui para a criptografia do lado do servidor do Amazon S3. Se o registro de erros estiver ativado, o Firehose enviará erros de entrega de dados para seus fluxos de CloudWatch registros.

Você precisa ter uma função do IAM antes de criar um stream do Firehose. O Firehose assume essa função do IAM e obtém acesso ao bucket, à chave, ao grupo e aos fluxos de CloudWatch registros especificados. Use a política de acesso a seguir para permitir que o Firehose acesse seu bucket do S3. Se você não é proprietário do bucket S3, adicione s3:PutObjectAcl à lista de ações do Amazon Simple Storage Service, que concede ao proprietário do bucket acesso total aos objetos entregues pelo Firehose. Essa política também concede ao Firehose acesso CloudWatch para registro de erros. A política também tem uma instrução que permite o acesso ao Amazon Kinesis Data Streams. Se você não usar o Kinesis Data Streams como fonte de dados, poderá remover essa instrução. O Firehose não usa o IAM para acessar o Snowflake. Para acessar o Snowflake, ele usa o URL e o ID de voz da sua conta do Snowflake no PrivateLink caso de um cluster privado.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] } ] }

Para obter mais informações sobre como permitir que outros AWS serviços acessem seus AWS recursos, consulte Como criar uma função para delegar permissões a um AWS serviço no Guia do usuário do IAM.

Acesso ao Snowflake em VPC

Se o cluster do Snowflake tiver um link privado habilitado, o Firehose usará VPC Endpoints para entregar dados ao seu cluster privado sem passar pela Internet pública. Para isso, crie regras de rede do Snowflake para permitir a entrada do seguinte AwsVpceIds no cluster em que Região da AWS seu cluster está. Para obter mais informações, consulte Criação de regras de rede no Guia do usuário do Snowflake.

IDs de endpoint de VPC a serem usados com base nas regiões em que seu cluster está
Região da AWS VPCE IDs
Leste dos EUA (Ohio)

vpce-0d96cafcd96a50aeb

vpce-0cec34343d48f537b

Leste dos EUA (Norte da Virgínia)

vpce-0b4d7e8478e141ba8

vpce-0b75cd681fb507352

vpce-01c03e63820ec00d8

vpce-0c2cfc51dc2882422

vpce-06ca862f019e4e056

vpce-020cda0cfa63f8d1c

vpce-0b80504a1a783cd70

vpce-0289b9ff0b5259a96

vpce-0d7add8628bd69a12

vpce-02bfb5966cc59b2af

vpce-09e707674af878bf2

vpce-049b52e96cc1a2165

vpce-0bb6c7b7a8a86cdbb

vpce-03b22d599f51e80f3

vpce-01d60dc60fc106fe1

vpce-0186d20a4b24ecbef

vpce-0533906401a36e416

vpce-05111fb13d396710e

vpce-0694613f4fbd6f514

vpce-09b21cb25fe4cc4f4

vpce-06029c3550e4d2399

vpce-00961862a21b033da

vpce-01620b9ae33273587

vpce-078cf4ec226880ac9

vpce-0d711bf076ce56381

vpce-066b7e13cbfca6f6e

vpce-0674541252d9ccc26

vpce-03540b88dedb4b000

vpce-0b1828e79ad394b95

vpce-0dc0e6f001fb1a60d

vpce-0d8f82e71a244098a

vpce-00e374d9e3f1af5ce

vpce-0c1e3d6631ddb442f

Oeste dos EUA (Oregon)

vpce-0f60f72da4cd1e4e7

vpce-0c60d21eb8b1669fd

vpce-01c4e3e29afdafbef

vpce-0cc6bf2a88da139de

vpce-0797e08e169e50662

vpce-033cbe480381b5c0e

vpce-00debbdd8f9eb10a5

vpce-08ec2f386c809e889

vpce-0856d14310857b545

Europa (Frankfurt)

vpce-068dbb7d71c9460fb

vpce-0a7a7f095942d4ec9

Europa (Irlanda)

vpce-06857e59c005a6276

vpce-04390f4f8778b75f2

vpce-011fd2b1f0aa172fd

Ásia-Pacífico (Tóquio)

vpce-06369e5258144e68a

vpce-0f2363cdb8926fbe8

Ásia-Pacífico (Singapura)

vpce-049cd46cce7a12d52

vpce-0e8965a1a4bdb8941

Ásia-Pacífico (Seul)

vpce-0aa444d9001e1faa1

vpce-04a49d4dcfd02b884

Ásia-Pacífico (Sydney)

vpce-048a60a182c52be63

vpce-03c19949787fd1859

Conceda ao Amazon Data Firehose acesso a um destino de endpoint HTTP

Você pode usar o Amazon Data Firehose para entregar dados para qualquer destino de endpoint HTTP. O Amazon Data Firehose também faz backup desses dados no bucket do Amazon S3 que você especificar e, opcionalmente, você pode usar AWS KMS uma chave que você possui para a criptografia do lado do servidor do Amazon S3. Se o registro de erros estiver ativado, o Amazon Data Firehose enviará erros de entrega de dados para seus fluxos de CloudWatch log. Você também pode usar AWS Lambda para transformação de dados.

Você precisa ter uma função do IAM ao criar um stream do Firehose. O Amazon Data Firehose assume essa função do IAM e obtém acesso ao bucket, à chave e ao grupo de CloudWatch registros e fluxos especificados.

Use a seguinte política de acesso para permitir que o Amazon Data Firehose acesse o bucket S3 que você especificou para backup de dados. Se você não possui o bucket do S3, adicione-o s3:PutObjectAcl à lista de ações do Amazon S3, que concede ao proprietário do bucket acesso total aos objetos entregues pelo Amazon Data Firehose. Essa política também concede ao Amazon Data Firehose acesso CloudWatch para registro de erros e transformação de AWS Lambda dados. A política também tem uma instrução que permite o acesso ao Amazon Kinesis Data Streams. Se você não usar o Kinesis Data Streams como fonte de dados, poderá remover essa instrução.

Importante

O Amazon Data Firehose não usa o IAM para acessar destinos de endpoints HTTP pertencentes a provedores de serviços terceirizados compatíveis, incluindo Datadog, Dynatrace, LogicMonitor MongoDB, New Relic, Splunk ou Sumo Logic. Para acessar um destino de endpoint HTTP especificado de propriedade de um provedor de serviços terceirizado compatível, entre em contato com esse provedor de serviços para obter a chave de API ou a chave de acesso necessária para permitir a entrega de dados para esse serviço do Amazon Data Firehose.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Para obter mais informações sobre como permitir que outros AWS serviços acessem seus AWS recursos, consulte Como criar uma função para delegar permissões a um AWS serviço no Guia do usuário do IAM.

Importante

Atualmente, o Amazon Data Firehose NÃO oferece suporte à entrega de dados para endpoints HTTP em uma VPC.

Entrega entre contas da Amazon MSK

Ao criar um stream do Firehose a partir da sua conta do Firehose (por exemplo, Conta B) e sua origem é um cluster MSK em outra AWS conta (Conta A), você deve ter as seguintes configurações em vigor.

Conta A:

  1. No console do Amazon MSK, escolha o cluster provisionado e depois escolha Propriedades.

  2. Em Configurações de rede, escolha Editar e ative a Conectividade de várias VPCs.

  3. Em Configurações de segurança, escolha Editar política do cluster.

    1. Se o cluster ainda não tiver uma política configurada, marque Incluir entidade principal do serviço Firehose e Habilitar a entrega do S3 entre contas do Firehose. Isso AWS Management Console gerará automaticamente uma política com as permissões apropriadas.

    2. Se o cluster já tiver uma política configurada, adicione as seguintes permissões à política existente:

      { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::arn:role/mskaasTestDeliveryRole" }, "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "arn:aws:kafka:us-east-1:arn:cluster/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20" // ARN of the cluster }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::arn:role/mskaasTestDeliveryRole" }, "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "arn:aws:kafka:us-east-1:arn:topic/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*"//topic of the cluster }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::233450236687:role/mskaasTestDeliveryRole" }, "Action": "kafka-cluster:DescribeGroup", "Resource": "arn:aws:kafka:us-east-1:arn:group/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, }
  4. Em Entidade principal da AWS , insira o ID da entidade principal da Conta B.

  5. Em Tópico, especifique o tópico do Apache Kafka do qual você deseja que seu stream do Firehose consuma dados. Depois que o stream do Firehose for criado, você não poderá atualizar esse tópico.

  6. Selecione Save changes (Salvar alterações)

Conta B:

  1. No console do Firehose, escolha Criar stream do Firehose usando a Conta B.

  2. Em Fonte, escolha Amazon Managed Streaming for Apache.

  3. Em Configurações da fonte, para o cluster do Amazon Managed Streaming for Apache Kafka, insira o ARN do cluster do Amazon MSK na Conta A.

  4. Em Tópico, especifique o tópico do Apache Kafka do qual você deseja que seu stream do Firehose consuma dados. Depois que o stream do Firehose for criado, você não poderá atualizar esse tópico.

  5. Em Nome do stream de entrega, especifique o nome do seu stream Firehose.

Na Conta B, ao criar seu stream do Firehose, você deve ter uma função do IAM (criada por padrão ao usar o AWS Management Console) que conceda ao stream do Firehose acesso de “leitura” ao cluster Amazon MSK entre contas para o tópico configurado.

Veja a seguir o que é configurado pelo AWS Management Console:

{ "Sid": "", "Effect": "Allow", "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "arn:aws:kafka:us-east-1:arn:cluster/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, { "Sid": "", "Effect": "Allow", "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "arn:aws:kafka:us-east-1:arn:topic/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/mskaas_test_topic" //topic of the cluster }, { "Sid": "", "Effect": "Allow", "Action": [ "kafka-cluster:DescribeGroup" ], "Resource": "arn:aws:kafka:us-east-1:arn:group/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, }

Em seguida, você pode concluir a etapa opcional de configuração da transformação de registros e da conversão de formato de registros. Para ter mais informações, consulte Configurar a transformação de registros e a conversão de formatos.

Entrega entre contas a um destino do Amazon S3

Você pode usar as APIs AWS CLI ou as APIs do Amazon Data Firehose para criar um stream do Firehose em uma conta com AWS um destino do Amazon S3 em uma conta diferente. O procedimento a seguir mostra um exemplo de configuração de um stream do Firehose de propriedade da conta A para entregar dados a um bucket do Amazon S3 de propriedade da conta B.

  1. Crie uma função do IAM na conta A usando as etapas descritas em Conceder acesso ao Firehose a um destino do Amazon S3.

    nota

    O bucket do Amazon S3 especificado na política de acesso padrão pertence à conta B neste caso. Certifique-se de adicionar s3:PutObjectAcl à lista de ações do Amazon S3 na política de acesso, que concede à conta B acesso total aos objetos entregues pelo Amazon Data Firehose. Essa permissão é necessária para a entrega entre contas. O Amazon Data Firehose define o cabeçalho x-amz-acl "" na solicitação como "”bucket-owner-full-control.

  2. Para permitir o acesso no perfil do IAM criado anteriormente, crie uma política de bucket do S3 na conta B. O código a seguir é um exemplo de política de bucket. Para obter mais informações, consulte Usar políticas de buckets e do usuário.

    { "Version": "2012-10-17", "Id": "PolicyID", "Statement": [ { "Sid": "StmtID", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountA-id:role/iam-role-name" }, "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }
  3. Crie um stream do Firehose na conta A usando a função do IAM que você criou na etapa 1.

Entrega entre contas para um destino OpenSearch de serviço

Você pode usar as AWS CLI APIs do Amazon Data Firehose para criar um stream do Firehose em uma AWS conta com um destino de OpenSearch serviço em outra conta. O procedimento a seguir mostra um exemplo de como você pode criar um stream do Firehose na conta A e configurá-lo para entregar dados a um destino de OpenSearch serviço pertencente à conta B.

  1. Criar um perfil do IAM na conta A usando as etapas descritas em Conceda ao Amazon Data Firehose acesso a um destino de serviço público OpenSearch .

  2. Para permitir o acesso da função do IAM que você criou na etapa anterior, crie uma política de OpenSearch serviço na conta B. O seguinte JSON é um exemplo.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account-A-ID:role/firehose_delivery_role " }, "Action": "es:ESHttpGet", "Resource": [ "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_all/_settings", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_cluster/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_mapping/roletest", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/*/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/" ] } ] }
  3. Crie um stream do Firehose na conta A usando a função do IAM que você criou na etapa 1. Ao criar o stream do Firehose, use as APIs AWS CLI ou as APIs do Amazon Data Firehose e especifique o ClusterEndpoint campo em vez de Service. DomainARN OpenSearch

nota

Para criar um stream do Firehose em uma AWS conta com um destino de OpenSearch serviço em uma conta diferente, você deve usar as APIs AWS CLI ou as APIs do Amazon Data Firehose. Você não pode usar o AWS Management Console para criar esse tipo de configuração entre contas.

Uso de tags para controle de acesso

Você pode usar o Condition elemento opcional (ou Condition bloco) em uma política do IAM para ajustar o acesso às operações do Amazon Data Firehose com base nas chaves e valores das tags. As subseções a seguir descrevem como fazer isso para as diferentes operações do Amazon Data Firehose. Para saber mais sobre o uso do elemento Condition e as operações que você pode usar com ele, consulte Elementos de política JSON do IAM: condição.

CreateDeliveryStream

Para a operação CreateDeliveryStream, use a chave de condição aws:RequestTag. No exemplo a seguir, MyKey e MyValue representam a chave e o valor correspondente de uma tag. Para obter mais informações, consulte Conceitos básicos de tags.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "firehose:CreateDeliveryStream", "firehose:TagDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/MyKey": "MyValue" } } }] }

TagDeliveryStream

Para a operação TagDeliveryStream, use a chave de condição aws:TagKeys. No exemplo a seguir, MyKey é um exemplo de chave de tag.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:TagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ] }

UntagDeliveryStream

Para a operação UntagDeliveryStream, use a chave de condição aws:TagKeys. No exemplo a seguir, MyKey é um exemplo de chave de tag.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:UntagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ] }

ListDeliveryStreams

Não é possível usar controle de acesso com base em tags com ListDeliveryStreams.

Outras operações do Amazon Data Firehose

Para todas as operações do Amazon Data FirehoseCreateDeliveryStream, exceto,TagDeliveryStream, e UntagDeliveryStreamListDeliveryStreams, use a chave de aws:RequestTag condição. No exemplo a seguir, MyKey e MyValue representam a chave e o valor correspondente de uma tag.

ListDeliveryStreams, use a chave de firehose:ResourceTag condição para controlar o acesso com base nas tags desse stream do Firehose.

No exemplo a seguir, MyKey e MyValue representam a chave e o valor correspondente de uma tag. A política só se aplicaria aos fluxos do Data Firehose com uma tag nomeada MyKey com um valor de. MyValue Para obter mais informações sobre como controlar o acesso com base em tags de recursos, consulte Como controlar o acesso a AWS recursos usando tags no Guia do usuário do IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "firehose:DescribeDeliveryStream", "Resource": "*", "Condition": { "StringEquals": { "firehose:ResourceTag/MyKey": "MyValue" } } } ] }