AWS Systems Manager アイデンティティベースポリシーの例
デフォルトでは、AWS Identity and Access Management (IAM) エンティティ (ユーザーやロール) には、AWS Systems Manager リソースを作成または変更するアクセス許可は付与されていません。また、Systems Manager コンソール、AWS Command Line Interface (AWS CLI)、また AWS API を使用してタスクを実行しません。管理者は、ユーザーとロールが必要とする指定されたリソースで特定の API 操作を実行するための許可を付与する IAM ポリシーを作成する必要があります。続いて、管理者はそれらのアクセス許可が必要なユーザーまたはグループにそのポリシーをアタッチします。
次の許可ポリシーの例では、米国東部 (オハイオ) (us-east-2) AWS リージョン で MyDocument- で始まる名前のドキュメントを削除することをユーザーに許可します。
JSON ポリシードキュメントのこれらの例を使用して、IAM アイデンティティベースのポリシーを作成する方法については、IAM ユーザーガイドの「IAM ポリシーの作成」を参照してください。
トピック
ポリシーに関するベストプラクティス
ID ベースのポリシーは、ユーザーのアカウントで誰かが Systems Manager リソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションを実行すると、AWS アカウント に料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:
-
AWS マネージドポリシーの使用を開始し、最小特権のアクセス許可に移行する – ユーザーとワークロードへのアクセス許可の付与を開始するには、多くの一般的なユースケースのためにアクセス許可を付与する AWS マネージドポリシーを使用します。これらは AWS アカウントで使用できます。ユースケースに固有の AWS カスタマー管理ポリシーを定義して、アクセス許可を絞り込むことをお勧めします。詳細については、IAM ユーザーガイド の AWS マネージドポリシー または ジョブ機能の AWS マネージドポリシー を参照してください。
-
最小特権を適用する – IAM ポリシーでアクセス許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、IAM ユーザーガイド の IAM でのポリシーとアクセス許可 を参照してください。
-
IAM ポリシーで条件を使用してアクセスをさらに制限する - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。たとえば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。また、CloudFormation などの特定の AWS のサービス を介して使用する場合、条件を使用してサービスアクションへのアクセスを許可することもできます。詳細については、IAM ユーザーガイド の IAM JSON ポリシー要素:条件 を参照してください。
-
IAM アクセスアナライザー を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する - IAM アクセスアナライザー は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、IAM ユーザーガイド の IAM Access Analyzer でポリシーを検証する を参照してください。
-
多要素認証 (MFA) を要求する – AWS アカウントで IAM ユーザーまたはルートユーザーを要求するシナリオがある場合は、セキュリティを強化するために MFA をオンにします。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、IAM ユーザーガイド の MFA を使用した安全な API アクセス を参照してください。
IAM でのベストプラクティスの詳細については、IAM ユーザーガイド の IAM でのセキュリティのベストプラクティス を参照してください。
例: Systems Manager コンソールを使用するためのアクセス許可
Systems Manager コンソールにアクセスするには、一連の最小限のアクセス許可が必要です。これらのアクセス許可により、AWS アカウント の Systems Manager リソースおよび他のリソースの詳細をリストおよび表示できます。
最小限必要なアクセス許可よりも厳しく制限されたアイデンティティベースのポリシーを作成すると、そのポリシーを持つ IAM エンティティ (ユーザーやロール) に対してコンソールが意図したとおりに機能しなくなります。
AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソール許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスが許可されます。
ユーザーおよびロールが引き続き Systems Manager コンソールを使用できるようにするには、エンティティに AmazonSSMFullAccess または AmazonSSMReadOnlyAccess AWS マネージドポリシーもアタッチしてください。詳細については、「IAM ユーザーガイド」の「ユーザーへのアクセス許可の追加」を参照してください。
例: ユーザーに自分のアクセス許可の表示を許可するアクセス許可
この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または AWS CLI か AWS API を使用してプログラム的に、このアクションを完了するアクセス許可が含まれています。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
例: 個々のパラメータを読み取り、記述するアクセス許可
例 1 つのパラメータを読み取り、記述する
次のポリシーをアイデンティティにアタッチすると、パラメータへのアクセスを許可することができます。
カスタマーマネージドポリシーの例
スタンドアロンポリシーを作成して独自の AWS アカウント で管理できます。このようなポリシーは、カスタマー管理ポリシーと呼ばれます。これらのポリシーは、AWS アカウント の複数のプリンシパルエンティティにアタッチできます。ポリシーをプリンシパルエンティティにアタッチすると、ポリシーで定義されたアクセス権限がエンティティに付与されます。詳細については、IAM ユーザーガイドの「お客様が管理するポリシーの例」を参照してください。
以下のユーザーポリシーの例では、さまざまな Systems Manager アクションのアクセス許可を付与します。これらを使用して、IAM エンティティ (ユーザーやロール) の Systems Manager アクセス許可を制限します。これらのポリシーは、Systems Manager API、AWS SDK、または AWS CLI でアクションを実行するときに機能します。コンソールを使用するユーザーに対しては、コンソールに固有の追加のアクセス権限を付与する必要があります。詳細については、「」を参照してください例: Systems Manager コンソールを使用するためのアクセス許可
注記
すべての例で、米国西部 (オレゴン) リージョン (us-west-2) を使用し、架空のアカウント ID を使用しています。AWS パブリックドキュメント (AWS-* で始まるドキュメント) については、Amazon リソースネーム (ARN) にアカウント ID を指定しないでください。
例
例 1: ユーザーに単一リージョンで Systems Manager オペレーションを実行することを許可する
次の例では、米国東部 (オハイオ) リージョン (us-east-2) でのみ Systems Manager オペレーションを実行するための許可を付与します。
例 2: 単一リージョンのドキュメントの一覧表示をユーザーに許可する
次の例で付与する許可では、米国東部 (オハイオ) リージョン (us-east-2) の Update で始まるすべてのドキュメント名を一覧表示できます。
例3: ユーザーが特定 SSM ドキュメントを使用して特定ノードでコマンドを実行することを許可します。
次の IAM ポリシーの例は、ユーザーが米国東部 (オハイオ) リージョン (us-east-2) で次の操作を実行することを許可します。
-
Systems Manager のドキュメント (SSM ドキュメント) とドキュメントバージョンを一覧表示します。
-
ドキュメントに関する詳細の表示。
-
ポリシーに指定されたドキュメントを使用してコマンドを送信します。ドキュメント名は次のエントリによって決定します。
arn:aws:ssm:us-east-2:aws-account-ID:document/Systems-Manager-document-name -
コマンドを 3 つのノードに送信します。ノードは 2 番目の
Resourceセクションにある以下のエントリによって決定されます。"arn:aws:ec2:us-east-2:aws-account-ID:instance/i-02573cafcfEXAMPLE", "arn:aws:ec2:us-east-2:aws-account-ID:instance/i-0471e04240EXAMPLE", "arn:aws:ec2:us-east-2:aws-account-ID:instance/i-07782c72faEXAMPLE" -
送信後のコマンドの詳細を表示。
-
AWS Systems Manager のツールである Automation でワークフローを開始および停止します。
-
自動化ワークフローに関する情報を取得します。
ユーザーに対し、このドキュメントを使用して、アクセスできる任意のノードでコマンドを送信する権限を付与するには、Resource セクションで次のようなエントリを指定します。他のノードエントリを削除します。この例では、米国東部 (オハイオ) リージョン (us-east-2) を使用しています。
"arn:aws:ec2:us-east-2:*:instance/*"
タグに基づく Systems Manager ドキュメントの表示
アイデンティティベースのポリシーの条件を使用して、タグに基づいて Systems Manager リソースへのアクセスをコントロールできます。この例では、SSM ドキュメントを表示できるポリシーを作成する方法を示します。ただし、ドキュメントタグ Owner にそのユーザーのユーザー名の値がある場合のみ、アクセス許可は付与されます。このポリシーでは、このアクションをコンソールで実行するために必要なアクセス許可も付与します。
このポリシーをアカウントの ユーザーにアタッチできます。richard-roe という名前のユーザーが Systems Manager ドキュメントを表示しようとする場合、ドキュメントに Owner=richard-roe または owner=richard-roe というタグが付いている必要があります。タグが付いていない場合は、アクセスが拒否されます。条件キー名では大文字と小文字は区別されないため、条件タグキー Owner は Owner と owner に一致します。詳細については、IAM ユーザーガイド」の「IAM JSON ポリシー要素: 条件」を参照してください。