ステップ 3: クロスアカウント宛先の IAM アクセス許可を追加/検証する - Amazon CloudWatch Logs

ステップ 3: クロスアカウント宛先の IAM アクセス許可を追加/検証する

AWS クロスアカウントポリシーの評価論理によると、クロスアカウントリソース (サブスクリプションフィルターの宛先として使用される Kinesis または Firehose ストリームなど) にアクセスするには、クロスアカウントの宛先リソースへの明示的なアクセスを提供する ID ベースのポリシーを送信アカウントに設定する必要があります。ポリシーの評価論理の詳細については、「クロスアカウントポリシーの評価論理」を参照してください。

ID ベースのポリシーは、サブスクリプションフィルターの作成に使用している IAM ロールまたは IAM ユーザーにアタッチできます。送信アカウントにこのポリシーが存在する必要があります。管理者ロールを使用してサブスクリプションフィルタを作成している場合は、このステップをスキップして ステップ 4: サブスクリプションフィルターを作成する に進んでください。

クロスアカウントに必要な IAM アクセス許可を追加または検証するには
  1. 次のコマンドを入力して、AWS ログコマンドの実行に使用されている IAM ロールまたは IAM ユーザーを確認します。

    aws sts get-caller-identity

    このコマンドにより、以下のような出力が返されます。

    { "UserId": "User ID", "Account": "sending account id", "Arn": "arn:aws:sending account id:role/user:RoleName/UserName" }

    RoleName または UserName で表される値を書き留めておいてください。

  2. 送信側アカウントの AWS マネジメントコンソール にサインインし、ステップ 1 で入力したコマンドの出力に IAM ロールまたは IAM ユーザーが返された添付ポリシーを検索します。

  3. このロールまたはユーザーにアタッチされたポリシーが、クロスアカウントの宛先リソースで logs:PutSubscriptionFilter を呼び出すための明示的なアクセス許可が付与されていることを確認します。

    以下のポリシーでは、1 つの AWS アカウント、アカウント 123456789012 内の任意の宛先リソースに対してのみサブスクリプションフィルターを作成するアクセス許可が付与されます。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowSubscriptionFiltersOnAnyResourceInOneSpecificAccount", "Effect": "Allow", "Action": "logs:PutSubscriptionFilter", "Resource": [ "arn:aws:logs:*:*:log-group:*", "arn:aws:logs:*:123456789012:destination:*" ] } ] }

    以下のポリシーでは、1 つの AWS アカウント、アカウント 123456789012 内にある sampleDestination という任意の宛先リソースに対してのみサブスクリプションフィルターを作成するアクセス許可が付与されます。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowSubscriptionFiltersOnSpecificResource", "Effect": "Allow", "Action": "logs:PutSubscriptionFilter", "Resource": [ "arn:aws:logs:*:*:log-group:*", "arn:aws:logs:*:123456789012:destination:amzn-s3-demo-bucket" ] } ] }