Perfis do IAM para entrega entre contas
Ao publicar no Amazon Data Firehose, você pode escolher um fluxo de entrega que esteja na mesma conta que o recurso a ser monitorado (a conta de origem) ou em uma conta diferente (a conta de destino). Para permitir a entrega de logs de fluxo entre contas para o Amazon Data Firehose, você deve criar um perfil do IAM na conta de origem e um perfil do IAM na conta de destino.
Função da conta de origem
Na conta de origem, crie uma função que conceda as seguintes permissões. Neste exemplo, o nome da função é mySourceRole
, mas você pode escolher um nome diferente para esta função. A última instrução permite que a função na conta de destino assuma esta função. As instruções de condição garantem que essa função seja passada somente para o serviço de entrega de logs e somente ao ser monitorado o recurso especificado. Ao criar sua política, especifique as VPCs, as interfaces de rede ou as sub-redes que você está monitorando com a chave de condição iam:AssociatedResourceARN
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
source-account
:role/mySourceRole
", "Condition": { "StringEquals": { "iam:PassedToService": "delivery.logs.amazonaws.com" }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:ec2:region
:source-account
:vpc/vpc-00112233344556677
" ] } } }, { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:GetLogDelivery" ], "Resource": "*" }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::destination-account
:role/AWSLogDeliveryFirehoseCrossAccountRole" } ] }
Verifique se a essa função tem a política de confiança a seguir, que permite que o serviço de entrega de logs assuma a função.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Na conta de origem, use o procedimento a seguir para criar a função.
Para criar a função da conta de origem
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Policies.
-
Escolha Criar política.
-
Na página Create policy (Criar política) faça o seguinte:
-
Selecione JSON.
-
Substitua o conteúdo dessa janela pela política de permissões no início desta seção.
-
Escolha Próximo.
-
Insira um nome e uma descrição e tags opcionais para a política e escolha Criar política.
-
-
No painel de navegação, escolha Roles.
-
Escolha Criar Perfil.
-
Em Trusted entity type (Tipo de entidade confiável), escolha Custom trust policy (Política de confiança personalizada). Em Custom trust policy (Política de confiança personalizada), substitua
"Principal": {},
pelo seguinte, que especifica o serviço de entrega de logs. Escolha Próximo."Principal": { "Service": "delivery.logs.amazonaws.com" },
-
Na página Add permissions (Adicionar permissões), marque a caixa de seleção correspondente à política que você criou anteriormente neste procedimento e, em seguida, escolha Next (Próximo).
-
Insira um nome para a função e, opcionalmente, uma descrição.
-
Selecione Criar função.
Função da conta de destino
Na conta de destino, crie uma função com um nome que comece com AWSLogDeliveryFirehoseCrossAccountRole. Essa função deve conceder as seguintes permissões.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "firehose:TagDeliveryStream" ], "Resource": "*" } ] }
Certifique-se de que essa função tenha a seguinte política de confiança, que permite que a função que você criou na conta de origem assuma esta função.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
source-account
:role/mySourceRole
" }, "Action": "sts:AssumeRole" } ] }
Na conta de destino, use o procedimento a seguir para criar a função.
Para criar a função da conta de destino
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Policies.
-
Escolha Criar política.
-
Na página Create policy (Criar política) faça o seguinte:
-
Selecione JSON.
-
Substitua o conteúdo dessa janela pela política de permissões no início desta seção.
-
Escolha Próximo.
-
Insira um nome para a política que comece com AWSLogDeliveryFirehoseCrossAccountRole e, em seguida, escolha Create policy (Criar política).
-
-
No painel de navegação, escolha Roles.
-
Escolha Criar Perfil.
-
Em Trusted entity type (Tipo de entidade confiável), escolha Custom trust policy (Política de confiança personalizada). Em Custom trust policy (Política de confiança personalizada), substitua
"Principal": {},
pelo seguinte, que especifica a função da conta de origem. Escolha Próximo."Principal": { "AWS": "arn:aws:iam::
source-account
:role/mySourceRole
" }, -
Na página Add permissions (Adicionar permissões), marque a caixa de seleção correspondente à política que você criou anteriormente neste procedimento e, em seguida, escolha Next (Próximo).
-
Insira um nome para a função e, opcionalmente, uma descrição.
-
Selecione Criar função.