AWS Elemental MediaLiveで使用するIAMロールをアップデートしてみた

AWS Elemental MediaLiveのマネージメントコンソール上でIAMロールのアップデート通知が表示されていました。アップデート前後でIAMロールの内容を確認、比較してみるとCloudWatch LogsとAWS Elemental MediaConnectの権限が追加されていることがわかりました。
2018.12.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

清水です。先日AWS Elemental MeidaLiveでマネージメントコンソールからChannelを作成しようとすると、IAMロール選択箇所で以下のような表示が出現しました。

このMediaLiveAccessRoleはおおよそ1年前、MediaLiveリリース直後ぐらいに同じくマネージメントコンソールから作成したIAMロールです。以下のエントリで触れていますね。

続いてGeneral infoのChannel nameを設定します。今回は「MediaLive-Channel」としました。IAMロールの設定では「Create role from template」でIAMロールを作成、その後「Use existing role」で作成したIAMロールを選択します。

表示されているメッセージは「Your MediaLiveAccessRole policies are not up to date, please update them to ensure all features work」とのことで、MediaLiveのすべての機能を動作させるにはポリシーのアップデートが必要のようです。これはMediaLiveのアップデート機能の動作に必要、ということかと推測できます。本エントリではこのMediaLive用IAMロールのアップデート前後の情報を比較してみたのでまとめてみたいと思います。

アップデート前のIAMロール情報

まずはアップデートする前のMediaLive用のIAMロールの情報を確認してみましょう。マネージメントコンソールで確認するとこちらですね。

各ポリシーの内容はAWS CLIで取得してみます。まずはマネージドポリシーの確認です。

 $ aws iam list-attached-role-policies --role-name MediaLiveAccessRole
{
    "AttachedPolicies": [
        {
            "PolicyName": "AmazonSSMReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess"
        }
    ]
}
 
 $ aws iam get-policy --policy-arn "arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess"
{
    "Policy": {
        "PolicyName": "AmazonSSMReadOnlyAccess",
        "PolicyId": "ANPAJODSKQGGJTHRYZ5FC",
        "Arn": "arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess",
        "Path": "/",
        "DefaultVersionId": "v1",
        "AttachmentCount": 1,
        "PermissionsBoundaryUsageCount": 0,
        "IsAttachable": true,
        "Description": "Provides read only access to Amazon SSM.",
        "CreateDate": "2015-05-29T17:44:19Z",
        "UpdateDate": "2015-05-29T17:44:19Z"
    }
}

続いてインラインポリシーを確認します。

 $ aws iam list-role-policies --role-name MediaLiveAccessRole
{
    "PolicyNames": [
        "MediaLiveCustomPolicy"
    ]
}

 $ aws iam get-role-policy --role-name MediaLiveAccessRole --policy-name MediaLiveCustomPolicy
{
    "RoleName": "MediaLiveAccessRole",
    "PolicyName": "MediaLiveCustomPolicy",
    "PolicyDocument": {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:ListBucket",
                    "s3:PutObject",
                    "s3:GetObject",
                    "s3:DeleteObject"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "mediastore:ListContainer",
                    "mediastore:PutObject",
                    "mediastore:GetObject",
                    "mediastore:DeleteObject",
                    "mediastore:DescribeObject"
                ],
                "Resource": "*"
            }
        ]
    }
}

マネージメントコンソールからIAMロールを更新する

確認したIAMロール情報からどのように変化するのでしょうか、マネージメントコンソールから[Update]ボタンでMediaLive用IAMロールを更新してみます。

[Update]ボタン押下後、ボタンが消えればIAMロールの更新が完了です。

アップデート後のIAMロール情報の確認

ではアップデート後のMediaLive用のIAMロールの情報を確認してみます。マネージメントコンソール上、ぱっと見は違いがないように見受けれれます。

が、ここで展開されていないインラインポリシーをAWS CLIで確認してみましょう。CloudWatch Logsまわりの権限と先日リリースされたAWS Elemental MediaConnectまわりの権限が追加されていることがわかります。

 $ aws iam list-role-policies --role-name MediaLiveAccessRole
{
    "PolicyNames": [
        "MediaLiveCustomPolicy"
    ]
}

 $ aws iam get-role-policy --role-name MediaLiveAccessRole --policy-name MediaLiveCustomPolicy
{
    "RoleName": "MediaLiveAccessRole",
    "PolicyName": "MediaLiveCustomPolicy",
    "PolicyDocument": {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:ListBucket",
                    "s3:PutObject",
                    "s3:GetObject",
                    "s3:DeleteObject"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "mediastore:ListContainers",
                    "mediastore:PutObject",
                    "mediastore:GetObject",
                    "mediastore:DeleteObject",
                    "mediastore:DescribeObject"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents",
                    "logs:DescribeLogStreams",
                    "logs:DescribeLogGroups"
                ],
                "Resource": "arn:aws:logs:*:*:*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "mediaconnect:ManagedDescribeFlow",
                    "mediaconnect:ManagedAddOutput",
                    "mediaconnect:ManagedRemoveOutput"
                ],
                "Resource": "*"
            }
        ]
    }
}

まとめ

AWS Elemental MediaLiveのマネージメントコンソール上のIAMロールのアップデート通知から、実際にIAMロールをアップデートしてみました。アップデート前後でMediaLive用のIAMロールの内容を確認、比較してみるとCloudWatch LogsとAWS Elemental MediaConnectの権限が追加されていることがわかりました。これでMediaLiveがCloudWatch Logs、MediaConnectとの連携が可能になりましたね。実際にどのような機能アップデートとなっているかについても、追って調査しまとめてみたいと思います。