Home > 3月 19th, 2012

2012.03.19

古いWindows Server 2008のAMIをVPCで利用する時の注意点

Amazonから提供されているWindows Server 2008のv1.02以前のAMIを利用して作成したサーバを
VPC内で利用しようとするとActivationを要求されます。
その対策。

1.VPCで起動したサーバのActivation先の変更
以下の2つのIPアドレスが提供されているらしい。

  • 169.254.169.250
  • 169.254.169.251 (backup)

上記IPを指すように手動で設定を変更。 ※Administratorで実行しよう

Slmgr.vbs /skms 169.254.169.250
Slmgr.vbs /ato

2.Ec2Configの設定変更
Ec2ConfigにActivation先が登録されているようで
今後VPCで起動するAMIはEc2Configの変更が必要。

C:\Program Files\Amazon\Ec2ConfigService\Settings\ActivationSettings.xml

<?xml version=”1.0″ encoding=”utf-8″?>
<ActivationSettingsTable>
    <!– 
        KMS Servers are searched for/activated against based on 
        settings in this file.  Each “methodSettings” section is
        attempted until a KMS server is found and instance is 
        successfully activated.
    –>
    <!– Try autodiscovery first… –>
    <!– NOTE: Autodiscover clears any KMS that is already set! –>
    <MethodSettings>
        <SetAutodiscover>true</SetAutodiscover>
        <TargetKMSServer/>    
        <DiscoverFromZone/>
        <ReadFromUserData>false</ReadFromUserData>
        <LegacySearchZones>false</LegacySearchZones>
        <DoActivate>true</DoActivate>
    </MethodSettings>
    <!– Try the first virtual IP for VPC instances –>
    <MethodSettings>
        <SetAutodiscover>false</SetAutodiscover>
        <TargetKMSServer>169.254.169.250</TargetKMSServer>
        <DiscoverFromZone/>
        <ReadFromUserData>false</ReadFromUserData>
        <LegacySearchZones>false</LegacySearchZones>
        <DoActivate>true</DoActivate>
    </MethodSettings>
    <!– Try the backup IP for VPC instances… –>
    <MethodSettings>
        <SetAutodiscover>false</SetAutodiscover>
        <TargetKMSServer>169.254.169.251</TargetKMSServer>
        <DiscoverFromZone/>
        <ReadFromUserData>false</ReadFromUserData>
        <LegacySearchZones>false</LegacySearchZones>
        <DoActivate>true</DoActivate>
    </MethodSettings>
    <!– 
        Now search the DNS suffix list.
        This should already have been set by the SetDNSSuffix plugin,
        controlled by the setting in the primary config file.
    –>
    <MethodSettings>
        <SetAutodiscover>false</SetAutodiscover>
        <TargetKMSServer/>
        <DiscoverFromZone/>
        <ReadFromUserData>false</ReadFromUserData>
        <LegacySearchZones>true</LegacySearchZones>
        <DoActivate>true</DoActivate>
    </MethodSettings>
    <GlobalSettings>
        <LogResultToConsole>true</LogResultToConsole>
    </GlobalSettings>
</ActivationSettingsTable>

以上です。

参考サイト
Release: Amazon Virtual Private Cloud on 2011-03-27

IAMを使って特定の人に特定のbucketのみ操作を許可する

S3を使う時に特定の人に特定のbucketだけを許可したい場合。

  1. AWS Management Consoleにログイン
  2. IAMタブを開く
  3. Groupsで「Create New Group」をクリックしWizardを開く
  4. Select Policy Templateで「Amazon S3 Full Access」を「Select」
  5. 下記の内容にPolicy Documentを修正
  6. 「Continue」をクリック「Create Group」でグループを作成
  7. 作成したグループに権限を割り当てたいユーザを加えて完了

Pollcy Documentはこんな感じ

{
  “Statement”: [
    {
      “Effect”: “Allow”,
      “Action”: “s3:*”,
      “Resource”: “arn:aws:s3:::hoge.bucket.hoge”
    },
    {
      “Effect”: “Allow”,
      “Action”: “s3:*”,
      “Resource”: “arn:aws:s3:::hoge.bucket.hoge/*”
    }
  ]
}

デフォルトではs3の全てのアクションが全てのリソースに対して許可されたものが作成されます。
そこでテンプレのResourceを修正して特定のbucketのみに変更。

ARNはAmazon Resource Nameの略でリソースを指定していることを表してるようです。
続いてawsのs3を指定しています。
そのあと:を3つ続けbucketを指定します。

ここで一つ目には
arn:aws:s3:::hoge.bucket.hoge
を指定。
これはbucket内のファイルリストの表示などbucketを指定しての操作を許可してます。

続いてコピペでもうひとつ作って修正。
変更点は
arn:aws:s3:::hoge.bucket.hoge/*
とResourceに bucket/* を指定することで
bucket内のオブジェクト全てに対する操作を許可してます。
これでダウンロードやアップロードが可能になるみたい。

何ができるか、についてはActionを指定するらしい(やってない)。