クロスアカウント配信のための IAM ロール
Amazon Data Firehose に発行する場合、監視するリソースと同じアカウント (ソースアカウント) または別のアカウント (送信先アカウント) にある配信ストリームを選択できます。Amazon Data Firehose へのフローログのクロスアカウント配信を有効にするには、ソースアカウントと送信先アカウントに IAM ロールをそれぞれ作成する必要があります。
ソースアカウントロール
ソースアカウントで、次のアクセス許可を付与するロールを作成します。この例のロールの名前は mySourceRole
ですが、このロールには別の名前を選択できます。最後のステートメントにより、送信先アカウントのロールがこのロールを引き受けることができるようになります。条件ステートメントにより、このロールは指定されたリソースを監視する場合に限り、ログ配信サービスだけに渡されます。ポリシーを作成するときに、監視する VPC、ネットワークインターフェイス、またはサブネットを条件キー 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" } ] }
このロールに以下の信頼ポリシーがあることを確認します。これにより、ログ配信サービスがロールを引き受けることができます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
ソースアカウントから、以下に説明する手順に従ってロールを作成します。
ソースアカウントロールを作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、ポリシー を選択してください。
-
[ポリシーの作成] を選択します。
-
[ポリシーの作成] ページで、次の操作を行います。
-
[JSON] を選択します。
-
このウィンドウのコンテンツを、このセクションの冒頭にあるアクセス許可ポリシーに置き換えてください。
-
[Next] を選択します。
-
ポリシーの名前、説明 (省略可能)、タグを入力し、[ポリシーの作成] をクリックします。
-
-
ナビゲーションペインで [Roles (ロール) ] を選択します。
-
[Create role] を選択します。
-
[Trusted entity type] (信頼されたエンティティのタイプ) で、[Custom trust policy] (カスタム信頼ポリシー) を選択します。[Custom trust policy] (カスタム信頼ポリシー) で、
"Principal": {},
を次のように置き換え、ログ配信サービスを指定します。[Next] を選択します。"Principal": { "Service": "delivery.logs.amazonaws.com" },
-
[Add permissions] (アクセス許可の追加) ページで、この手順で先ほど作成したポリシーの横にあるチェックボックスを選択し、[Next] (次へ) を選択します。
-
ロールの名前を入力し、オプションで説明を入力します。
-
[ロールの作成] を選択します。
送信先アカウントロール
送信先アカウントで、AWSLogDeliveryFirehoseCrossAccountRole で始まる名前のロールを作成します。このロールには、以下のアクセス許可が必要です。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "firehose:TagDeliveryStream" ], "Resource": "*" } ] }
このロールに次の信頼ポリシーがあることを確認します。これにより、ソースアカウントで作成したロールがこのロールを引き受けることができます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
source-account
:role/mySourceRole
" }, "Action": "sts:AssumeRole" } ] }
送信先アカウントから、以下に説明する手順に従ってロールを作成します。
送信先アカウントロールを作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、ポリシー を選択してください。
-
[ポリシーの作成] を選択します。
-
[ポリシーの作成] ページで、次の操作を行います。
-
[JSON] を選択します。
-
このウィンドウのコンテンツを、このセクションの冒頭にあるアクセス許可ポリシーに置き換えてください。
-
[Next] を選択します。
-
AWSLogDeliveryFirehoseCrossAccountRole で始まるポリシーの名前を入力し、[ポリシーの作成] を選択します。
-
-
ナビゲーションペインで [Roles (ロール) ] を選択します。
-
[Create role] を選択します。
-
[Trusted entity type] (信頼されたエンティティのタイプ) で、[Custom trust policy] (カスタム信頼ポリシー) を選択します。[Custom trust policy] (カスタム信頼ポリシー) で、
"Principal": {},
を次のように置き換え、ソースアカウントロールを指定します。[Next] を選択します。"Principal": { "AWS": "arn:aws:iam::
source-account
:role/mySourceRole
" }, -
[Add permissions] (アクセス許可の追加) ページで、この手順で先ほど作成したポリシーの横にあるチェックボックスを選択し、[Next] (次へ) を選択します。
-
ロールの名前を入力し、オプションで説明を入力します。
-
[ロールの作成] を選択します。