Permissions management - セキュリティの柱

Permissions management

アクセス許可を管理して、AWS とワークロードへのアクセスを必要とするユーザー ID やマシン ID へのアクセスを制御します。権限を分けることで、どのような条件で誰が何にアクセスできるかを制御します。特定のユーザー ID およびマシン ID にアクセス権限を設定し、必要とするリソースに対するサービスアクションへのアクセスのみを許可します。さらに、アクセスを取得するために満たすべき条件を指定します。例えば、特定のリージョンのみで新しい Lambda 関数を作成することをデベロッパーに許可できます。大規模な AWS 環境を管理する場合、以下のベストプラクティスに従って、それぞれのアイデンティティに必要なアクセスのみを許可し、必要以上に設定しないようにします。

さまざまなタイプのリソースにアクセスを付与する方法は多数あります。その 1 つは、異なるポリシータイプを使用する方法です。

IAM での アイデンティティベースのポリシーは、マネージドまたはインラインで、ユーザー、グループ、ロールなどの IAM アイデンティティにアタッチされます。これらのポリシーでは、そのアイデンティティができる内容 (そのアクセス許可) を指定できます。アイデンティティベースのポリシーはさらに分類できます。

マネージドポリシー – スタンドアロンのアイデンティティベースのポリシーで、AWS アカウントで複数のユーザー、グループ、およびロールにアタッチできます。マネージドポリシーには 2 つのタイプがあります。

  • AWS マネージドポリシー – AWS によって作成および管理されるマネージドポリシー。

  • カスタマー管理ポリシー – AWS アカウントで作成および管理するマネージドポリシー。カスタマー管理ポリシーでは、AWS マネージドポリシーよりも正確にポリシー管理できます。

アクセス許可を付与するには、マネージドポリシーのほうが好ましい方法です。ただし、単一のユーザー、グループ、ロールに直接追加するインラインポリシーを使用することもできます。インラインポリシーでは、ポリシーとアイデンティティ間に厳格な 1 対 1 の関係を維持します。アイデンティティを削除すると、インラインポリシーは削除されます。

ほとんどの場合、最小特権の原則に従って独自のカスタマー管理ポリシーを作成する必要があります。

リソースベースのポリシーは、リソースにアタッチされます。例えば、Amazon S3 バケットポリシーはリソースベースのポリシーです。これらのポリシーでは、リソースと同じアカウントまたは別のアカウントにあるプリンシパルにアクセス許可を付与します。リソースベースのポリシーをサポートするサービスの一覧については、「IAM と連携する AWS のサービス」を参照してください。

アクセス許可の境界は、マネージドポリシーを使用して、管理者が設定できるアクセス許可の上限を設定できます。これによって、IAM ロール作成などのアクセス許可の作成および管理の権限を開発者に委任しながらも、付与できるアクセス許可を制限して、自分でそのアクセス許可の範囲を拡大できないように制限できます。

属性ベースのアクセスコントロール (ABAC) では、属性に基づいてアクセス許可を付与することができます。AWS では、これをタグと呼びます。タグは、IAM プリンシパル (ユーザーまたはロール) と AWS リソースにアタッチできます。IAM ポリシーを使うと、管理者は再利用可能なポリシーを作成して IAM プリンシパルの属性に基づいたアクセス許可を適用できます。例えば、管理者は 1 つの IAM ポリシーを使用して、開発者のプロジェクトタグに一致する AWS リソースへのアクセス権を組織内の開発者に付与できます。開発者チームがプロジェクトにリソースを追加すると、属性に基づきそれに対するアクセス許可が自動的に適用されます。このため、リソースが追加されるたびにポリシーを更新する必要はありません。

Organizations サービスコントロールポリシー (SCP) は、組織または組織単位 (OU) のアカウントメンバーの最大許容を定義します。SCP は、アイデンティティベースのポリシーやリソースベースのポリシーがアカウント内のエンティティ (ユーザーやロール) に付与する許可を制限するものですが、許可を付与するものではありません。

セッションポリシーは、ロールまたはフェデレーションユーザーを引き受けます。AWS CLI または AWS API セッションポリシーを使ってロールまたはユーザーのアイデンティティベースのポリシーがセッションに付与する許可を制限する際、セッションポリシーを渡します。これらのポリシーは、作成されたセッション許可を制限するものですが、許可を付与するものではありません。詳細については「セッションポリシー」を参照してください。