STAY KOBE

[SolutionArchitect Pro] AWS IAM アクセス管理

IAM アクセス管理


{
    “Version”: “2012-10-17”,
    “Statement”: {
       “Principal“: {“AWS”: [“arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:root”]},
       “Action“: “s3:ListBucket”,
       “Effect“: “Allow”,
       “Resource“: “arn:aws:s3:::example_bucket”,
       “Condition“: {“StringLike”: {
           “s3:prefix”: [ “home/${aws:username}/” ]
              }
          }
    }
}

ID ベース 対 リソースベース のアクセス許可

管理ポリシーとインラインポリシー

IAM ポリシーシミュレータ

IAM ポリシーの評価

許可が許可されているかどうかを判断するときは、フローに従います。

  1. 評価は、リクエストが拒否されるという前提からスタートします。
  2. エンフォースメントコードは、リクエストに適用可能なユーザーベースおよびリソースベースのポリシーすべてを、リソース、プリンシパル、アクション、および条件に基づいて評価します。
    エンフォースメントコードによるポリシー評価の順序は重要ではありません。
  3. 前述のすべてのポリシーにおいて、リクエストに適応する明示的な拒否のインストラクションがエンフォースメントコードによって検索されます。
    適用される明示的な拒否が 1 つでも見つかると、コードは「Deny」の結果を返してプロセスが終了します。
  4. 明示的な拒否が見つからなかった場合、リクエストに適用され得る「Allow」のインストラクションがないか、エンフォースメントコードによって検索されます。
    明示的な許可が 1 つでも見つかると、コードは「Allow」の結果を返し、サービスはリクエストの処理を続けます。
  5. 許可が見つからない場合、最終結果は「Deny」となります。
    評価中にコードにエラーが発生すると、例外を生成して終了します。

IAM ポリシー変数


AWS認定試験の練習問題

  1. IAM のポリシー評価ロジックは、常に、AWS アカウントのルートセキュリティ資格情報を使用するものを除き、すべての要求に対してデフォルトの ____________ で開始されます
    1. 許可
    2. 否定
    3. キャンセル
  2. 組織は、10 の IAM ユーザーを作成しました。組織は、それぞれの IAM ユーザーが別々の DynamoDB テーブルにアクセスできるようにしたいと考えています。すべてのユーザーが同じグループに追加され、組織はこのためにグループレベルのポリシーを設定したいと考えています。どのように組織はこれを達成することができますか?
    1. グループポリシーを定義し、IAM 名に基づくアクセスを許可する条件を追加します。
    2. IAM ユーザー名と同じ名前の DynamoDB テーブルを作成し、変数を使用して DynamoDB ARN に基づいてアクセスを許可するポリシールールを定義します。
    3. ユーザーごとに別個の DynamoDB データベースを作成し、DB 変数に基づいてグループ内のポリシーを構成する
    4. 異なる IAM ユーザーに異なる DynamoDB テーブルを許可するグループレベルのポリシーを設定することはできません。
  3. 組織は複数の IAM ユーザーをセットアップしています。組織は、各 IAM ユーザーが、外部からではなく、組織内でのみ IAM コンソールにアクセスすることを望んでいます。どのようにこれを達成することができますか?
    1. セキュリティグループで IAM ポリシーを作成し、そのセキュリティグループを使用して AWS コンソールログイン
    2. IP アドレス範囲が組織から外れた場合にアクセスを拒否する条件を持つ IAM ポリシーを作成する
    3. 組織の IP 範囲からのトラフィックのみを許可する EC2 インスタンスセキュリティグループを構成する
    4. VPC を使用して IAM ポリシーを作成し、組織と AWS コンソールの間でセキュアなゲートウェイを許可する
  4. 特定のエンティティに複数のポリシーをアタッチすることはできますか。
    1. はい、常に
    2. GovCloud 内の場合のみ
    3. いいえ
    4. VPC 内でのみ
  5. __________ は、1つ以上の権限の正式なステートメントを提供するドキュメントです。
    1. ポリシー
    2. 許可
    3. 役割
    4. リソース
  6. __________ は、ユーザー、グループ、またはロールなどのエンティティを1つ以上のリソースにアクセスできるようにする (または禁止する) という概念です。
    1. ユーザー
    2. AWS アカウント
    3. リソース
    4. 許可
  7. True または False: IAM を使用して RDS リソースへのアクセスを制御する場合、使用できるキー名は大文字小文字を区別します。たとえば、aws:CurrentTime は AWS:CurrentTime と同等ではありません。
    1. TRUE
    2. FALSE (参照リンク)
  8. ユーザーは、IP 10.10.10.1/32 からの要求があれば、すべての要求を許可する IAM ポリシーを設定しました。別のポリシーでは、午後5時から午後7時までのすべてのリクエストが可能です。ユーザーが午後6時に IP 10.10.10.1/32 からアクセスを要求している場合はどうなりますか?
    1. IAM はポリシーの競合に対してエラーをスローします
    2. 時間または IP に基づいてポリシーを設定することはできません。
    3. これは、アクセスを拒否する
    4. それはアクセスを許可する
  9. AWS ID およびアクセス管理のポリシー評価ロジックを使用した正しいステートメントは、次のうちどれですか。2つの回答を選択します。
    1. 既定では、すべての要求は拒否されます
    2. 明示的な許可は、明示的な拒否をオーバーライドします
    3. 明示的な許可は既定の拒否をオーバーライドします
    4. 明示的な拒否は明示的な許可をオーバーライドしません。
    5. 既定では、すべての要求が許可されます。
  10. Web デザイン会社は現在、250の顧客がアップロードし、大きなグラフィックファイルをダウンロードするために使用するいくつかの FTP サーバーを実行します。彼らは、このシステムをAWSに移行して拡張性を高めたいと考えていますが、顧客のプライバシーを維持し、コストを最小限に抑えたいと考えています。 どのようなAWSアーキテクチャをお勧めしますか? [PROFESSIONAL]
    1. 顧客に FTP クライアントの代わりに S3 クライアントを使用するように依頼します。1つの S3 バケットを作成します。顧客ごとに IAM ユーザーを作成します。IAM ユーザーを、「ユーザー名」ポリシー変数を使用してバケット内のサブディレクトリへのアクセスを許可する IAM ポリシーを持つグループに配置します。
    2. 冗長ストレージが有効になっている単一の S3 バケットを作成し、顧客に FTP クライアントの代わりに S3 クライアントを使用するように依頼します。1人の顧客にのみアクセスを許可するバケットポリシーを使用して、顧客ごとにバケットを作成します。(各ユーザのバケットを作成すると、スケーラブルなモデルではない、また100バケットは、リンクを変更して以来、拡張することなく、以前の制限があります)
    3. Auto スケーリンググループの最小ネットワークトラフィックが指定されたしきい値を下回った場合に、スケーリングポリシーを使用して自動的にスケールインする FTP サーバーの自動スケーリンググループを作成します。各インスタンスのユーザーデータのスタートアップスクリプトの一部として、S3 から FTP ユーザーの中央リストをロードします (高額)
    4. リクエスタがオンになっている1つの S3 バケットを作成し、顧客に FTP クライアントの代わりに S3 クライアントを使用するように依頼します。バケットを作成する各顧客は、その1つの顧客にのみアクセスを許可するバケットポリシーを使用します。(各ユーザのバケットを作成すると、スケーラブルなモデルではない、また100バケットは、リンクを変更して以来、拡張することなく、以前の制限があります)

Jayendra’s Blog

この記事は自己学習用に「AWS IAM Access Management(Jayendra’s Blogより)」を日本語に訳した記事です。