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 entrada e saída dos recursos do Amazon Data Firehose. As informações abordadas incluem como conceder acesso à sua aplicação para que ela possa enviar dados para seu fluxo 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, neste tópico, você encontrará orientações sobre como configurar o Amazon Data Firehose para que ele possa entregar dados a um destino que pertence a outra conta da 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?.
Conteúdo
Concessão ao Firehose de acesso ao seu cluster privado do Amazon MSK
Conceda acesso ao Firehose AWS Glue para conversão de formato de dados
Concessão ao Firehose de acesso a um destino de tabelas do Apache Iceberg
Conceder ao Firehose acesso a um destino de serviço público OpenSearch
Conceder ao Firehose acesso a um destino de OpenSearch serviço em uma VPC
Conceda ao Firehose acesso a um destino público OpenSearch sem servidor
Conceda ao Firehose acesso a um destino OpenSearch sem servidor em uma VPC
Ingestão de logs de fluxo da VPC no Splunk usando o Amazon Data Firehose
Concessão ao Firehose de acesso a um destino de endpoint de HTTP
Concessão de acesso a seus recursos do Firehose
Para conceder à sua aplicação acesso ao fluxo do Firehose, use uma política semelhante a este exemplo. É possível 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
" ] } ] }
Concessão ao Firehose de acesso ao seu cluster privado do Amazon MSK
Se a fonte do seu fluxo do Firehose for um cluster privado do Amazon MSK, use uma política similar a este exemplo.
{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": [ "kafka:CreateVpcConnection" ], "Resource": "cluster-arn" } ] }
Você deve adicionar uma política como essa à política baseada em recursos do cluster para conceder à entidade principal do serviço do Firehose permissão de invocar a operação de API CreateVpcConnection
do Amazon MSK.
Permissão para o Firehose assumir um perfil do IAM
Esta seção descreve as permissões e as políticas que concedem ao Amazon Data Firehose acesso para ingerir, processar e entregar dados da fonte 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. Por outro lado, se você quiser que o Amazon Data Firehose use um perfil do IAM existente ou se criar um perfil, anexe a política de confiança a seguir a esse perfil para que o Amazon Data Firehose possa assumi-lo. Edite as políticas para account-id
substituí-las pelo ID AWS da sua conta. Para obter informações sobre como modificar a relação de confiança de um perfil, consulte Modificação de um perfil.
O Amazon Data Firehose usa um perfil do IAM para todas as permissões de que o fluxo do Firehose precisa para processar e entregar os dados. Certifique-se de que as políticas de confiança a seguir estejam anexadas a esse perfil para que o Amazon Data Firehose possa assumi-lo.
{ "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 a atividade do Amazon Data Firehose originada da sua AWS conta possa 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 do fluxo do Firehose, deverá especificar outro perfil do IAM que conceda ao Amazon Data Firehose permissões para ingerir dados da fonte do cluster do Amazon MSK especificado. Certifique-se de que as políticas de confiança a seguir estejam anexadas a esse perfil para que o Amazon Data Firehose possa assumi-lo.
{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": "sts:AssumeRole" } ] }
Certifique-se de que esse perfil que concede permissões ao Amazon Data Firehose para ingerir dados da fonte do cluster do Amazon MSK especificado conceda as permissões a seguir:
{ "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 Firehose AWS Glue para conversão de formato de dados
Se o seu fluxo do Firehose fizer conversão de formato de dados, o Amazon Data Firehose referenciará as definições de tabela armazenadas no 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 Specifying AWS Glue Resource. ARNs
[{ "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 do esquema não tem restrições de recursos. Para obter mais informações, consulte exemplos de IAM para desserializadores no Guia do AWS Glue desenvolvedor.
Concessão ao Firehose de 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 um perfil do IAM ao criar um fluxo do Firehose. O Amazon Data 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 política de acesso padrão a seguir para permitir que o Amazon Data Firehose acesse o bucket do S3 e a chave do 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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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 a seguir:
{ "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 Firehose acesso às tabelas do Amazon S3
É necessário ter um perfil do IAM para criar um fluxo do Firehose. Use as etapas a seguir para criar uma política e um perfil do IAM. O Firehose assume esse perfil do IAM e executa as ações necessárias.
Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/
Crie uma política e escolha JSON no editor de políticas. Adicione a seguinte política em linha que concede permissões ao Amazon S3, como permissões de leitura/gravação, permissões para atualizar a tabela no catálogo de dados e outras.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3TableAccessViaGlueFederation", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetDatabase", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:<region>:<account-id>:catalog/s3tablescatalog/*", "arn:aws:glue:<region>:<account-id>:catalog/s3tablescatalog", "arn:aws:glue:<region>:<account-id>:catalog", "arn:aws:glue:<region>:<account-id>:database/*", "arn:aws:glue:<region>:<account-id>:table/*/*" ] }, { "Sid": "S3DeliveryErrorBucketPermission", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<error delivery bucket>", "arn:aws:s3:::<error delivery bucket>/*" ] }, { "Sid": "RequiredWhenUsingKinesisDataStreamsAsSource", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:<region>:<account-id>:stream/<stream-name>" }, { "Sid": "RequiredWhenDoingMetadataReadsANDDataAndMetadataWriteViaLakeformation", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Sid": "RequiredWhenUsingKMSEncryptionForS3ErrorBucketDelivery", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:<region>:<account-id>:key/<KMS-key-id>" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.<region>.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::<error delivery bucket>/prefix*" } } }, { "Sid": "LoggingInCloudWatch", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<account-id>:log-group:<log-group-name>:log-stream:<log-stream-name>" ] }, { "Sid": "RequiredWhenAttachingLambdaToFirehose", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:<region>:<account-id>:function:<function-name>:<function-version>" ] } ] }
A política tem declarações que permitem o acesso ao Amazon Kinesis Data Streams, a invocação de funções do Lambda e o acesso às chaves. AWS KMS Se você não usar nenhum desses recursos, poderá remover as respectivas declarações. 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ê deve configurar os nomes do grupo de registros e do fluxo de registros para usar essa opção. Para nomes de grupos de registros e fluxos de registros, consulte (Monitore o Amazon Data Firehose usando CloudWatch registros). (preciso de um link).
Nas políticas em linha, <error delivery bucket>
substitua pelo nome aws-account-id
do bucket do Amazon S3 e a região por um número Conta da AWS válido e uma região do recurso.
Depois de criar a política, abra o console do IAM em https://console.aws.amazon.com/iam/
Em Serviço ou Caso de Uso, escolha Kinesis. Em Caso de uso, escolha Kinesis Firehose.
Na próxima página, escolha a política criada na etapa anterior para anexar a esse perfil. Na página de análise, você encontrará uma política de confiança já anexada a essa função, dando permissões ao serviço Firehose para assumir essa função. Quando você cria a função, o Amazon Data Firehose pode assumir que ela executa as operações necessárias nos buckets do AWS Glue S3. Adicione o principal do serviço Firehose à política de confiança da função criada. Para obter mais informações, consulte Permitir que o Firehose assuma uma função do IAM.
Concessão ao Firehose de acesso a um destino de tabelas do Apache Iceberg
Você deve ter um perfil do IAM antes de criar um fluxo do Firehose e tabelas do Apache Iceberg usando o AWS Glue. Use as etapas a seguir para criar uma política e um perfil do IAM. O Firehose assume esse perfil do IAM e executa as ações necessárias.
-
Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/
. -
Crie uma política e escolha JSON no editor de políticas.
-
Adicione a política em linha a seguir, que concede ao Amazon S3 permissões, como permissões de leitura/gravação, permissões para atualizar a tabela no catálogo de dados, etc.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetDatabase", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:
<region>:<aws-account-id>
:catalog", "arn:aws:glue:<region>:<aws-account-id>
:database/*", "arn:aws:glue:<region>:<aws-account-id>
:table/*/*" ] }, { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:<region>:<aws-account-id>
:stream/<stream-name>
" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:<region>:<aws-account-id>
:key/<key-id>
" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket
/prefix*" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<aws-account-id>
:log-group:<log-group-name>
:log-stream:<log-stream-name>
" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:<region>:<aws-account-id>
:function:<function-name>:<function-version>
" ] } ] }A política acima tem uma declaração que permite o acesso ao Amazon Kinesis Data Streams, invocando funções do Lambda e acesso a chaves do KMS. Se você não usar nenhum desses recursos, poderá remover as respectivas declarações.
Se o registro de erros estiver ativado, o Firehose também enviará erros de entrega de dados para seu grupo de CloudWatch registros e streams. Para isso, é necessário configurar os nomes do grupo de logs e do fluxo de logs. Para os nomes de grupo de logs e fluxo de logs, consulte Monitore o Amazon Data Firehose usando registros CloudWatch .
-
Nas políticas em linha,
amzn-s3-demo-bucket
substitua pelo nome aws-account-id do bucket do Amazon S3 e a região por um número Conta da AWS válido e uma região dos recursos.nota
Esse perfil dá permissão a todos os bancos de dados e tabelas em seu catálogo de dados. Se você quiser, poderá conceder permissões somente para tabelas e bancos de dados específicos.
-
Depois de criar a política, abra o console do IAM
e crie um perfil do IAM com o AWS service (Serviço da AWS) como Tipo de entidade confiável. -
Em Serviço ou Caso de Uso, escolha Kinesis. Em Caso de uso, escolha Kinesis Firehose.
-
Na próxima página, escolha a política criada na etapa anterior para anexar a esse perfil. Na página de análise, você encontrará uma política de confiança já anexada a esse perfil, dando permissões ao serviço do Firehose para assumir esse perfil. Quando você cria o perfil, o Amazon Data Firehose pode assumi-lo para executar as operações necessárias no AWS Glue e nos buckets do S3.
Conceder ao Firehose acesso a um destino do Amazon Redshift
Consulte os pontos a seguir ao conceder acesso ao Amazon Data Firehose ao usar um destino do Amazon Redshift.
Tópicos
Perfil do IAM e política de acesso
Quando você usa um destino do Amazon Redshift, o Amazon Data Firehose entrega os dados ao 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 emite carrega os dados do bucket do S3 ao cluster provisionado do Amazon Redshift ou no grupo de trabalho do Amazon Redshift sem servidor. 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 um perfil do IAM ao criar um fluxo do Firehose.
Use a política de acesso padrão a seguir para permitir que o Amazon Data Firehose acesse o bucket do S3 e a chave do AWS KMS
. Se você não é o proprietário do bucket do S3, adicione s3:PutObjectAcl
à lista de ações do Amazon S3, o 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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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 cluster provisionado do Amazon Redshift ou ao grupo de trabalho do Amazon Redshift sem servidor desbloqueando os endereços IP do Amazon Data Firehose. O Amazon Data Firehose atualmente usa um bloco CIDR para cada região disponível.
Região | Blocos CIDR |
---|---|
Leste dos EUA (Ohio) |
|
Leste dos EUA (Norte da Virgínia) | 52.70.63.192/27 |
Oeste dos EUA (Norte da Califórnia) | 13.57.135.192/27 |
Oeste dos EUA (Oregon) | 52.89.255.224/27 |
AWS GovCloud (Leste dos EUA) | 18.253.138.96/27 |
AWS GovCloud (Oeste dos EUA) | 52.61.204.160/27 |
Canadá (Central) | 35.183.92.128/27 |
Oeste do Canadá (Calgary) | 40.176.98.192/27 |
Ásia-Pacífico (Hong Kong) | 18.162.221.32/27 |
Asia Pacific (Mumbai) | 13.232.67.32/27 |
Ásia-Pacífico (Hyderabad) | 18.60.192.128/27 |
Ásia-Pacífico (Seul) | 13.209.1.64/27 |
Ásia-Pacífico (Singapura) | 13.228.64.192/27 |
Ásia-Pacífico (Sydney) | 13.210.67.224/27 |
Ásia-Pacífico (Jacarta) | 108.136.221.64/27 |
Ásia-Pacífico (Tóquio) | 13.113.196.224/27 |
Ásia Pacifico (Osaka) | 13.208.177.192/27 |
Ásia-Pacífico (Tailândia) | 43.208.112.96/27 |
China (Pequim) | 52.81.151.32/27 |
China (Ningxia) | 161.189.23.64/27 |
Europa (Zurique) | 16.62.183.32/27 |
Europa (Frankfurt) | 35.158.127.160/27 |
Europa (Irlanda) | 52.19.239.192/27 |
Europa (Londres) | 18.130.1.96/27 |
Europa (Paris) | 35.180.1.96/27 |
Europa (Estocolmo) | 13.53.63.224/27 |
Oriente Médio (Bahrein) | 15.185.91.0/27 |
México (Central) | 78.12.207.32/27 |
América do Sul (São Paulo) | 18.228.1.128/27 |
Europa (Milão) | 15.161.135.128/27 |
África (Cidade do Cabo) | 13.244.121.224/27 |
Oriente Médio (Emirados Árabes Unidos) | 3.28.159.32/27 |
Israel (Tel Aviv) | 51.16.102.0/27 |
Ásia-Pacífico (Melbourne) | 16.50.161.128/27 |
Ásia-Pacífico (Malásia) | 43.216.58.0/27 |
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.
Conceder ao 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 um perfil do IAM ao criar um fluxo 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 for o proprietário do bucket do S3, adicione s3:PutObjectAcl
à lista de ações do Amazon S3, o 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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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
Conceder ao 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 fluxo 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 ENIs adicionar dados 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 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 um perfil do IAM ao criar um fluxo 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 for o proprietário do bucket do S3, adicione s3:PutObjectAcl
à lista de ações do Amazon S3, o 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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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 permissões mínimas a seguir 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 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 fluxo 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 ENIs adicionar dados 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.
Concessão ao Firehose de acesso a um destino do Splunk
Quando você está usando um destino Splunk, o Amazon Data Firehose entrega os dados ao endpoint do Coletor de eventos de HTTP (HEC) do Splunk. 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 persistentes com a expiração de cookies desabilitada 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 Persistência de sessão baseada na duração para Classic Load Balancer ou Application Load Balancer.
É necessário ter um perfil do IAM ao criar um fluxo 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 política de acesso padrão a seguir para permitir que o Amazon Data Firehose acesse seu bucket do S3. Se você não é o proprietário do bucket do S3, adicione s3:PutObjectAcl
à lista de ações do Amazon S3, o 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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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 na 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 à plataforma Splunk desbloqueando os endereços IP do Amazon Data Firehose. Atualmente, o Amazon Data Firehose usa os blocos CIDR a seguir.
Região | Blocos CIDR |
---|---|
Leste dos EUA (Ohio) |
|
Leste dos EUA (Norte da Virgínia) | 34.238.188.128/26, 34.238.188.192/26,
34.238.195.0/26 |
Oeste dos EUA (Norte da Califórnia) | 13.57.180.0/26 |
Oeste dos EUA (Oregon) | 34.216.24.32/27, 34.216.24.192/27,
34.216.24.224/27 |
AWS GovCloud (Leste dos EUA) | 18.253.138.192/26 |
AWS GovCloud (Oeste dos EUA) | 52.61.204.192/26 |
Ásia-Pacífico (Hong Kong) | 18.162.221.64/26 |
Ásia-Pacífico (Mumbai) | 13.232.67.64/26 |
Ásia-Pacífico (Seul) | 13.209.71.0/26 |
Ásia-Pacífico (Singapura) | 13.229.187.128/26 |
Ásia-Pacífico (Sydney) | 13.211.12.0/26 |
Ásia-Pacífico (Tailândia) | 43.208.112.128/26 |
Ásia-Pacífico (Tóquio) | 13.230.21.0/27, 13.230.21.32/27 |
Canadá (Central) | 35.183.92.64/26 |
Oeste do Canadá (Calgary) | 40.176.98.128/26 |
Europa (Frankfurt) | 18.194.95.192/27, 18.194.95.224/27,
18.195.48.0/27 |
Europa (Irlanda) | 34.241.197.32/27, 34.241.197.64/27,
34.241.197.96/27 |
Europa (Londres) | 18.130.91.0/26 |
Europa (Paris) | 35.180.112.0/26 |
Europa (Espanha) | 18.100.194.0/26 |
Europe (Stockholm) | 13.53.191.0/26 |
Oriente Médio (Bahrein) | 15.185.91.64/26 |
México (Central) | 78.12.207.64/26 |
América do Sul (São Paulo) | 18.228.1.192/26 |
Europa (Milão) | 15.161.135.192/26 |
África (Cidade do Cabo) | 13.244.165.128/26 |
Ásia Pacifico (Osaka) | 13.208.217.0/26 |
China (Pequim) | 52.81.151.64/26 |
China (Ningxia) | 161.189.23.128/26 |
Ásia-Pacífico (Jacarta) | 108.136.221.128/26 |
Oriente Médio (Emirados Árabes Unidos) | 3.28.159.64/26 |
Israel (Tel Aviv) | 51.16.102.64/26 |
Europa (Zurique) | 16.62.183.64/26 |
Ásia-Pacífico (Hyderabad) | 18.60.192.192/26 |
Ásia-Pacífico (Melbourne) | 16.50.161.192/26 |
Ásia-Pacífico (Malásia) | 43.216.44.192/26 |
Ingestão de logs de fluxo da VPC no Splunk usando o Amazon Data Firehose
Para saber mais sobre como criar uma assinatura de log de fluxo da VPC, publicar no Firehose e enviar os logs de fluxo da VPC para um destino com suporte, consulte Ingestão de logs de fluxo da VPC no Splunk usando o Amazon Data Firehose
Acesso ao Snowflake ou ao endpoint de HTTP
Não há um subconjunto de intervalos de endereços IP da AWS específico para o Amazon Data Firehose quando o destino é um endpoint de 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 IP da AWS 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.
Concessão ao Firehose de acesso a um destino do 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.
É necessário ter um perfil do IAM para criar um fluxo 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 padrão a seguir para permitir que o Firehose acesse o bucket do S3. Se você não for o proprietário do bucket do S3, adicione s3:PutObjectAcl
à lista de ações do Amazon Simple Storage Service, o 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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket
/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 na VPC
Se o cluster do Snowflake tiver um link privado habilitado, o Firehose usará um dos endpoints da VPC a seguir no momento da criação do link privado 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
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 |
Ásia-Pacífico (Mumbai) |
vpce-0d68cb822f6f0db68 vpce-0517d32692ffcbde2 |
Europa (Londres) |
vpce-0fd1874a0ba3b9374 vpce-08091b1a85e206029 |
América do Sul (São Paulo) |
vpce-065169b8144e4f12e vpce-0493699f0e5762d63 |
Canadá (Central) |
vpce-07e6ed81689d5271f vpce-0f53239730541394c |
Europa (Paris) |
vpce-09419680077e6488a vpce-0ea81ba2c08140c14 |
Ásia Pacifico (Osaka) |
vpce-0a9f003e6a7e38c05 vpce-02886510b897b1c5a |
Europa (Estocolmo) |
vpce-0d96410833219025a vpce-060a32f9a75ba969f |
Ásia-Pacífico (Jacarta) |
vpce-00add4b9a25e5c649 vpce-004ae2de34338a856 |
Concessão ao Firehose de acesso a um destino de endpoint de HTTP
É possível usar o Amazon Data Firehose para entregar dados a qualquer destino de endpoint de HTTP. O Amazon Data Firehose também faz backup dos dados no bucket do Amazon S3 especificado, e você tem a opção de usar uma chave do AWS KMS que possua para criptografia no 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 um perfil do IAM ao criar um fluxo do Firehose. O Amazon Data 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 política de acesso a seguir para permitir que o Amazon Data Firehose acesse o bucket do S3 especificado para backup de dados. Se você não é o proprietário do bucket do S3, adicione s3:PutObjectAcl
à lista de ações do Amazon S3, o 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 de HTTP especificado de propriedade de um provedor de serviços terceirizado com suporte, 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 do Amazon Data Firehose para esse serviç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:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] }, { "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:::amzn-s3-demo-bucket/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 a endpoints de HTTP em uma VPC.
Entrega entre contas do 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:
No console do Amazon MSK, escolha o cluster provisionado e depois escolha Propriedades.
Em Configurações de rede, escolha Editar e ative a Conectividade de várias VPCs.
Em Configurações de segurança, escolha Editar política do cluster.
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.
-
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 }, }
Em Entidade principal da AWS , insira o ID da entidade principal da Conta B.
Em Tópico, especifique o tópico do Apache Kafka do qual você deseja que o fluxo do Firehose faça a ingestão dos dados. Depois que o fluxo do Firehose for criado, você não poderá mais atualizar esse tópico.
Selecione Save changes (Salvar alterações)
Conta B:
No console do Firehose, escolha Criar fluxo do Firehose usando a Conta B.
Em Fonte, escolha Amazon Managed Streaming for Apache.
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.
Em Tópico, especifique o tópico do Apache Kafka do qual você deseja que o fluxo do Firehose faça a ingestão dos dados. Depois que o fluxo do Firehose for criado, você não poderá mais atualizar esse tópico.
-
Em Nome do fluxo de entrega, especifique o nome do seu fluxo do 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, é possível concluir a etapa opcional de configuração da transformação de registros e da conversão de formato de registros. Para obter mais informações, consulte (Opcional) Configuração de transformação de registro e conversão de formato.
Entrega entre contas a um destino do Amazon S3
Você pode usar o AWS CLI ou o Amazon Data Firehose APIs para criar um stream do Firehose em uma AWS conta com um destino Amazon S3 em uma conta diferente. O procedimento a seguir mostra um exemplo de configuração de fluxo do Firehose pertencente à conta para entregar os dados a um bucket do Amazon S3 pertencente à conta B.
-
Crie um perfil do IAM na conta A usando as etapas descritas em Concessão ao Firehose de acesso 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. Lembre-se de adicionar
s3:PutObjectAcl
à lista de ações do Amazon S3 na política de acesso padrão, o que concederá à 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. -
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:::amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] } ] } -
Crie um fluxo do Firehose na conta A usando o perfil do IAM criado na etapa 1.
Entrega entre contas para um destino OpenSearch de serviço
Você pode usar o AWS CLI ou o Amazon Data Firehose APIs 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.
-
Criar um perfil do IAM na conta A usando as etapas descritas em Conceder ao Firehose acesso a um destino de serviço público OpenSearch .
-
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/" ] } ] } -
Crie um fluxo do Firehose na conta A usando o perfil do IAM criado na etapa 1. Ao criar o stream do Firehose, use o AWS CLI ou o Amazon Data Firehose APIs 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 o AWS CLI ou o Amazon Data Firehose. APIs Você não pode usar o AWS Management Console para criar esse tipo de configuração entre contas.
Uso de tags para controlar o acesso
É possível usar o elemento opcional Condition
(ou bloco de Condition
) 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 podem ser usadas 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 ter mais informações, consulte Noções básicas sobre 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
Para todas as operações do Firehose, exceto CreateDeliveryStream
, TagDeliveryStream
, UntagDeliveryStream
e ListDeliveryStreams
, 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.
ListDeliveryStreams
, use a chave de condição firehose:ResourceTag
para controlar o acesso com base nas tags desse fluxo do Firehose.
No exemplo a seguir, MyKey
e MyValue
representam a chave e o valor correspondente de uma tag. A política se aplicaria somente aos fluxos do Data Firehose com uma tag de nome 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" } } } ] }