2026年07時点のDevOps AgentのIAM権限を調べてみた

2026年07時点のDevOps AgentのIAM権限を調べてみた

DevOps AgentのIAM権限周りについて、6月時点の内容から1ヶ月が経ち、7月のアップデート内容をまとめました。Glue権限の拡充やAthenaクエリ検証の最新結果など、ガードレールの変化を詳しく紹介します。
2026.07.31

こんにちは。たかやまです。

以前DevOps AgentのIAM権限周りについて2026年6月時点の内容をまとめてみました。

https://dev.classmethod.jp/articles/devops-agent-iam-permissions-2026-06/

それから約1ヶ月が経ち、AIDevOpsAgentAccessPolicy に7月も更新が入っていたので、2026年7月時点の内容をまとめました。

さきにまとめ

  • AIDevOpsAgentAccessPolicy はv8(2026/06/26)、v9(2026/07/02)と更新され、現時点ではv9が最新
  • v7以降は削除ゼロ・追加のみ。
    • ACM、Bedrock、EC2 Capacity Manager、Glueの拡充に加え、BCM Data Exports・Cost and Usage Report・Direct Connectが新規サービスとしてカバー対象に加わった
  • Additional Permissionsは5サービスから8サービスに拡大。
    • CloudWatch Logs、DynamoDB、AWS Supportが新規で、Direct Connectはテーブルから消えてマネージドポリシー本体側に移った
  • 6月時点でブロックされていたGlueのテーブル参照がv9で解消し、DevOps Agent経由のAthenaクエリはエンジン実行(スキャン)まで到達するようになった
    • ただし最終的なクエリ結果の取得は、結果保存先S3バケットへの書き込み権限不足でまだ失敗する

確認してみる

DevOps Agentのマネージドポリシーと追加可能な権限について、前回からの差分を中心に確認してみます。

AIDevOpsAgentAccessPolicy のアップデート確認

AIDevOpsAgentAccessPolicy は以下のドキュメントからポリシーの内容を確認できます。

https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AIDevOpsAgentAccessPolicy.html

執筆時点では2026/07/02の更新でv9となっています。

過去バージョンのポリシーは以下のコマンドで確認できます。

# ポリシーのバージョン一覧を確認
aws iam list-policy-versions \
  --policy-arn arn:aws:iam::aws:policy/AIDevOpsAgentAccessPolicy

# 特定バージョンのポリシードキュメントを確認(v9の例)
aws iam get-policy-version \
  --policy-arn arn:aws:iam::aws:policy/AIDevOpsAgentAccessPolicy \
  --version-id v9

各バージョンでの更新内容は以下のとおりです。v1〜v7は前回記事からの流用、v8・v9が今回の追加分です。

Version 作成日 変更内容
v1 2026-03-26 初版
v2 2026-04-23 pi:pi:Describe*, pi:Get*, pi:List* にワイルドカード化
servicequotas:ListServiceQuotas 追加
v3 2026-05-07 ce:GetAnomalyMonitors, ce:GetAnomalySubscriptionsce:Get* にワイルドカード化
v4 2026-05-11 v3と同一(差分なし)
v5 2026-06-01 health:DescribeAffectedEntities 追加
securityhub:GetFindings 追加
v6 2026-06-06 aidevops: 系を拡張(GetAsset,GetAssetContent,GetAssetFile,ListAssetFiles,ListAssets,ListAssetTypes,ListAssetVersions 追加)
resiliencehub:Get* にワイルドカード化
v7 2026-06-24 AIOPSServiceWriteAccess Sidを新設し書き込み系アクションを分離
guardduty:GetFindings, inspector2:SearchVulnerabilities, logs:GetLogEvents 追加
health:Describe*, servicequotas:Get*, servicequotas:List* にワイルドカード化
glue:GetCrawler, budgets:ViewBudget, iam:ListAccountAliases, iam:ListUsers 追加
ssm:GetCommandInvocation, sso:DescribePermissionSet, sso:ListPermissionSets 追加
v8 2026-06-26 ACM(acm:GetCertificate, acm:ListCertificates)追加
BCM Data Exports・Cost and Usage Report(cur:)を新規サービスとして追加
Bedrockのモデル情報取得系を5アクション追加
EC2 Capacity Manager関連を3アクション追加
Glueを14アクション追加し大幅拡充
v9 (current) 2026-07-02 Direct Connectを新規サービスとして9アクション追加(directconnect:Describe*
glue:GetPartitions, glue:GetTables 追加
s3:GetIntelligentTieringConfiguration, s3:GetInventoryConfiguration 追加
API GatewayのResourceに /domainnames(コレクション自体のARN)を追加

v7からv8、v8からv9のいずれも既存アクションの削除やワイルドカード化による縮小はなく、追加による拡張がされています。

個人的に気になったのはGlue周りの拡充です。

v8で14アクション、v9でさらに glue:GetPartitionsglue:GetTables が追加され、Glue Data Catalogに対する読み取り範囲がかなり広がりました。

後述のAthena検証にも関わってくる部分なので、後ほど詳しく触れます。

もう一点、v8とv9で新規サービスとして加わったBCM Data Exports、Cost and Usage Report(CUR)、Direct Connectはいずれも読み取り専用(Get*/Describe*/List*)で、コスト分析やネットワーク接続の調査にDevOps Agentを使えるシーンが広がりそうです。

Additional Permissions の確認

DevOps Agentではユーザー側で追加の権限を付与することで、マネージドポリシーの範囲を超えて参照できる範囲を拡張できます。

追加可能な権限の一覧はドキュメントで確認できます。

https://docs.aws.amazon.com/devopsagent/latest/userguide/aws-devops-agent-security-limiting-agent-access-in-an-aws-account.html#understanding-permission-guardrails

前回ブログ執筆時(2026年6月25日)では以下の権限が追加可能として記載されていました。

Service Actions Use case
Amazon Athena athena:GetQuery*, athena:StartQueryExecution, athena:StopQueryExecution データカタログに対するAthenaクエリの実行と結果の取得
Amazon S3 s3:GetObject, s3:ListBucket S3に保存されたアプリケーションデータ、ログ、設定の読み取り
AWS Direct Connect directconnect:DescribeConnections,
directconnect:DescribeDirectConnectGatewayAssociations,
directconnect:DescribeDirectConnectGateways,
directconnect:DescribeLags,
directconnect:DescribeVirtualInterfaces
ネットワーク接続の問題調査
AWS Glue glue:GetPartitions Athenaクエリ用にGlue Data Catalogのパーティションメタデータ取得
AWS KMS kms:Decrypt S3オブジェクト等の暗号化リソースの復号

執筆時点(2026/07/31)では以下の権限が追加可能として記載されています。

Service Actions Use case
Amazon Athena athena:GetQuery*, athena:StartQueryExecution, athena:StopQueryExecution データカタログに対するAthenaクエリの実行と結果の取得
Amazon CloudWatch Logs logs:GetLogRecord 調査対象アプリケーションの個別ログレコードの取得
Amazon DynamoDB dynamodb:Scan, dynamodb:Query, dynamodb:GetItem, dynamodb:BatchGetItem 調査時のDynamoDBテーブルからのアイテム読み取り
Amazon S3 s3:GetObject, s3:ListBucket S3に保存されたアプリケーションデータ、ログ、設定の読み取り
AWS Glue glue:GetPartition Athenaクエリ用にGlue Data Catalogのパーティションメタデータ取得
AWS KMS kms:Decrypt S3オブジェクト等の暗号化リソースの復号
AWS Support support:DescribeCommunications 調査に関連するAWS Supportケースのやり取りの参照
AWS Systems Manager ssm:GetParameter アプリケーションが使用するSystems Managerパラメータの読み取り

前回の5サービスから8サービスに増えており、CloudWatch Logs、DynamoDB、AWS Supportが新規です。

一方でAWS Direct ConnectはAdditional Permissionsから消えています。

前述のとおりv9でマネージドポリシー本体側に同等のDescribe系9アクションが追加されているため、Additional Permissions(オプトインで追加する権限)からデフォルト許可へ移ったような形です。

Athenaのクエリを再度試してみる

前回の検証では、Additional Permissionsで athena:StartQueryExecution を許可していても、クエリ実行に必要な glue:GetTableglue:GetDatabase がガードレールでブロックされ、クエリ実行そのものに到達できませんでした。

v9でGlue権限が大幅に拡充されたので、同じ検証をもう一度やってみます。

検証用にCloudTrailログをクエリできるAthenaテーブルを用意し、DevOps Agentのチャットに以下を依頼しました。

Athenaを使ってCloudTrailログのテーブルにクエリを実行してください。まず利用可能なGlueデータベースとテーブルを確認し、CloudTrailログのテーブルが見つかったら直近のイベント数を数える簡単なクエリ(例: SELECT COUNT(*) FROM <table> LIMIT 10 相当)を実行して結果を教えてください。
権限エラーが発生した場合は、どのIAMアクションが拒否されたかエラー内容をそのまま教えてください。

(検証用にAdditional PermissionsとしてAdministratorAccessポリシーを付与しています)


CleanShot_2026-07-31_11-21-07.png

DevOps Agentの処理ログを見ると、以下の流れで進みました。

  1. glue.get_databases を呼び出し、成功。default データベースを検出
  2. glue.get_tables を呼び出し、成功。default.cloudtrail_logs テーブルを検出
  3. athena.get_work_group を呼び出し、成功。ワークグループのOutputLocation(結果出力先)を確認
  4. athena.start_query_execution を呼び出し、成功。SELECT COUNT(*) as event_count FROM default.cloudtrail_logs を発行
  5. athena.get_query_execution を24回ポーリング
  6. 最終的にクエリエンジン側の実行自体は完了(約68.5秒、約6.25GBスキャン)したが、ステータスはFAILED

6月時点でブロックされていたGlueのデータベース参照・テーブル参照は、今回は両方とも成功しています。

v9で追加された glue:GetTables 等により動作が改善されたようですが、ただしクエリは最終的に失敗しており、DevOps Agentからは以下のエラーが返ってきました。

Access denied when writing output to url:
s3://athena-query-results-123456789012-ap-northeast-1/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.csv

Please ensure you are allowed to access the S3 bucket.
If specifying an expected bucket owner, confirm the bucket is owned by the expected account.
If you are encrypting query results with KMS key, please ensure you are allowed to access your KMS key

DevOps Agent自身の分析コメントは以下のとおりでした。

スキャンデータ量が 6.25 GB 発生していることから、CloudTrail ログのテーブルは存在しデータも読めていることは確認できています。問題は結果の「書き出し先」のみです。

Athena本体のクエリ実行(エンジンでのスキャン)までは到達できましたが、結果をS3に書き込む段階の s3:PutObject がAccess Deniedとなり、最終的な結果取得はできませんでした。

6月時点と7月時点の到達点を整理すると以下のようになります。

項目 6月時点 7月時点
Athenaクエリ発行(StartQueryExecution) 成功(ただ、内部処理のGlue権限で後述の通り結果取得自体はエラー) 成功(クエリ発行・エンジン実行完了、約6.25GBスキャン)
Glueデータベース参照(GetDatabases) ブロック(ガードレールで拒否) 成功
Glueテーブル参照(GetTables) ブロック(ガードレールで拒否) 成功
ワークグループ確認(GetWorkGroup) 成功 成功(OutputLocationを確認)
クエリ結果取得 Glueエラーで未到達 失敗(結果保存先S3への s3:PutObject がAccess Denied)

Glue側のエラーは解消された一方、依然としてAthenaクエリ結果の出力先バケットへの書き込み権限周りでエラーとなりました。
ここはAdditional Permissionsのテーブルにも s3:PutObject 相当の記載がないため、次のアップデートが気になるところです。
(mutableな操作になるので PutObject 権限の追加は難しそうな気はしています)

ちなみに最近のアップデートで DevOps Agent Sandbox 機能が利用できるようになり、DevOps Agent 内で ツールを使ってクエリできるようになりました。

以下のブログにてDevOps Agent 上でDuckDBを使って調査をためしているので、そちらも参考にしてみてください。

https://dev.classmethod.jp/articles/devops-agent-sandbox-preview/

最後に

今回は2026年7月時点でのDevOps Agentの調査権限の変更点を確認してみました。

AIDevOpsAgentAccessPolicy はv8・v9と更新が続き、Glueの拡充を中心にBCM Data Exports・CUR・Direct Connectといった新規サービスもカバーされるようになりました。Additional Permissionsも8サービスまで拡大し、DynamoDBやAWS Supportのケース参照など調査の幅が着実に広がっています。

Athenaクエリについては、6月時点で壁になっていたGlue側のガードレールが解消され、クエリのエンジン実行までは到達できるようになっていました。

一方で結果の書き込み先S3バケットへの権限が足りずエラーになる状態は依然として残っているので、DevOps Agent自体でクエリをしたい場合にはSandbox機能を利用するのが良いかもしれません。

DevOps Agentの権限まわりは月単位でアップデートが続いているので、引き続き期間を空けてこのあたりを追いかけてみたいと思います。

以上、たかやま(@nyan_kotaroo)でした。

この記事をシェアする

関連記事