もっと詳しく
AWS では、IAM ロールは IAM ユーザーのような AWS アイデンティティです。 AWS IAM サービスは非常に複雑なサービスであり、適切に構成しないと、セキュリティの問題が発生する可能性があります。 これらには、この ID が何を許可され、何を許可されないかを決定するポリシーが関連付けられています。 それは一人の人に付けられるものではなく、必要な人なら誰でも引き受けることができます。 IAM ユーザーのような長期的な認証情報 (パスワードまたはアクセス キー) の代わりに、IAM ロールには一時的なセキュリティ認証情報があります。 ユーザー、アプリケーション、またはサービスがアクセス許可を保持していない AWS リソースにアクセスする必要がある場合、ユーザーはこの目的のために特定のロールを使用/引き受けます。 その後、一時的なセキュリティ認証情報がこのタスクに使用されます。

何をカバーしますか?

このガイドでは、「IAM Passrole」権限の使用方法について説明します。 具体例として、passrole パーミッションを使用して EC2 インスタンスを S3 バケットに接続する方法を見ていきます。

重要な用語と概念

AWS サービスロール: ユーザーまたはアカウント所有者に代わってタスクを実行できるように、サービスが引き受ける役割です。

EC2 インスタンスの AWS サービス ロール: Amazon EC2 インスタンスで実行されているアプリケーションが、このロールで許可されているユーザー アカウントでタスクを実行するために引き受けるロールです。

AWS サービスにリンクされたロール: RDS DB を起動するための RDS サービスにリンクされたロールのように、事前に定義され、AWS サービスに直接アタッチされるロールです。

Passrole 権限を使用して EC2 インスタンスを S3 に接続する

多くの AWS サービスは設定のためのロールを必要とし、このロールはユーザーによって渡され、管理されます。 このようにして、サービスは役割を引き受け/引き受け、ユーザーに代わってタスクを実行します。 ほとんどのサービスでは、そのサービスを構成するときにロールを 1 回渡す必要があります。 ユーザーには、ロールを AWS サービスに渡すためのアクセス許可が必要です。 管理者はどのユーザーがサービスにロールを渡すことができるかを制御できるため、これはセキュリティの観点からは良いことです。 「PassRole」アクセス許可は、ロールを AWS サービスに渡すために、IAM ユーザー、ロール、またはグループにユーザーによって付与されます。

前の概念を詳しく説明するために、EC2 インスタンスで実行されているアプリケーションが S3 バケットへのアクセスを必要とする場合を考えてみましょう。 このために、このインスタンスに IAM ロールをアタッチして、このアプリケーションがロールで定義された S3 権限を取得できるようにします。 このアプリケーションには、認証と承認のために一時的な資格情報が必要です。 アプリケーションを実行しているインスタンスにロールが関連付けられると、EC2 は一時的なセキュリティ資格情報を取得します。 これらの資格情報は、S3 にアクセスするためにアプリケーションで使用できるようになります。

インスタンスの起動時に EC2 サービスにロールを渡す機能を IAM ユーザーに付与するには、次の 3 つのものが必要です。

  1. ロールのスコープを決定するロールの IAM アクセス許可ポリシー。
  2. EC2 がロールを引き受け、ロール内で定義されたアクセス許可を使用できるようにする、ロールにアタッチされた信頼ポリシー。
  3. 渡すことができるロールをリストする IAM ユーザーの IAM アクセス許可ポリシー。

もっと現実的な方法でやってみましょう。 権限が制限された IAM ユーザーがいます。 次に、EC2 インスタンスを起動するインライン ポリシーと、IAM ロールをサービスに渡すアクセス許可をアタッチします。 次に、S3 アクセス用のロールを作成します。 「S3Access」としましょう。 そしてそれに IAM ポリシーをアタッチします。 このロールでは、AWS が管理する「AmazonS3ReadOnlyAccess」ポリシーを使用して S3 データの読み取りのみを許可します。

役割を作成する手順

ステップ 1. 管理者 (ルート) の IAM コンソールから、[ロール]をクリックし、[ロールの作成]を選択します。

ステップ 2.[信頼されたエンティティの選択]ページで、[信頼されたエンティティ タイプ]の下の[AWS サービス]を選択します。

ステップ 3. 「ユース ケース」の下で、「他の AWS サービスのユース ケース」の「EC2」に対応するラジオ ボタンを選択します。

ステップ 4. 次のページで、「AmazonS3ReadOnlyAccess」ポリシーを割り当てます。

ステップ 5. ロールに名前を付けます (この場合は「S3Access」)。 このロールの説明を追加します。 この役割を使用して、次の信頼ポリシーが自動的に作成されます。

{
“バージョン”: “2012-10-17”
“声明”: [
        {
            “Effect”: “Allow”,
            “Action”: [
                “sts:AssumeRole”
            ]
“主要”: {
“サービス”: [
                    “ec2.amazonaws.com”
                ]
}
}
]
}

ステップ 6.「ロールの作成」をクリックしてロールを作成します。

ユーザーの IAM ポリシー

このポリシーは、IAM ユーザーに完全な EC2 アクセス許可と、「S3Access」ロールをインスタンスに関連付けるアクセス許可を付与します。

ステップ 1. IAM コンソールから、[ポリシー]をクリックし、[ポリシーの作成]をクリックします。

ステップ 2. 新しいページで、json タブを選択し、次のコードを貼り付けます。

{
“バージョン”: “2012-10-17”
“声明”: [{
    “Effect”:“Allow”,
    “Action”:[“ec2:*”]
“リソース”:「*」
}
{
“効果”:“許可する”
“アクション”:「iam:PassRole」
“リソース”:「arn:aws:iam::Account_ID:role/S3Access」
}]
}

太字のテキスト「アカウントID」をユーザー アカウント ID に置き換えます。

ステップ 3. (オプション) ポリシーにタグを付けます。

ステップ 4. ポリシーに適切な名前 (この場合は「IAM-User-Policy」) を付け、[ポリシーの作成]ボタンをクリックして、このポリシーを IAM ユーザーにアタッチします。

「S3Access」ロールを EC2 インスタンスにアタッチする

次に、このロールをインスタンスにアタッチします。 EC2 コンソールからインスタンスを選択し、[アクション]>[セキュリティ]>[IAM ロールの変更]に移動します。 新しいページで、ドロップダウン メニューから「S3Access」ロールを選択して保存します。

セットアップの確認

ここで、EC2 インスタンスが管理者によって作成された S3 バケットにアクセスできるかどうかを確認します。 EC2 インスタンスにログインし、AWS CLI アプリケーションをインストールします。 次に、この EC2 インスタンスで次のコマンドを実行します。

再度、ローカル マシンで構成された IAM アカウントから前のコマンドを実行します。 EC2 インスタンスではコマンドが正常に実行されますが、ローカル マシンでは「アクセスが拒否されました」というエラーが表示されます。

EC2 インスタンスの S3 アクセス許可のみを付与し、IAM ユーザーや他の AWS サービスには付与していないため、エラーは明らかです。 注意すべきもう 1 つの重要な点は、バケットとそのオブジェクトを公開していないことです。

結論

このガイドでは、AWS で PassRole アクセス許可を使用する方法を示しました。 EC2 を S3 に接続することに成功しました。 IAM ユーザーに最小限の権限を付与することに関心がある場合、これは非常に重要な概念です。

The post AWS IAM PassRole アクセス許可の使用方法 appeared first on Gamingsym Japan.