2.4.5. Keystone での STS Lite の設定および使用 (テクノロジープレビュー)
Amazon Secure Token Service (STS) と S3 API は、同じ名前空間に共存します。STS オプションは、Keystone オプションと組み合わせて設定できます。
S3 と STS の API の両方に、Ceph Object Gateway の同じエンドポイントを使用してアクセスできます。
前提条件
- Red Hat Ceph Storage 3.2 以降
- 実行中の Ceph Object Gateway。
- Boto Python モジュールのバージョン 3 以降のインストール
手順
group_vars/rgws.yml
ファイルを以下のオプションで開き、編集します。rgw_sts_key = $STS_KEY_FOR_ENCRYPTING_SESSION_TOKEN rgw_s3_auth_use_sts = true
rgw_sts_key = $STS_KEY_FOR_ENCRYPTING_SESSION_TOKEN rgw_s3_auth_use_sts = true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook を再実行します。
ansible-playbook site.yml --limit rgws
[user@admin ceph-ansible]$ ansible-playbook site.yml --limit rgws
Copy to Clipboard Copied! Toggle word wrap Toggle overflow EC2 認証情報を生成します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成された認証情報を使用して、GetSessionToken API を使用して一時的なセキュリティー認証情報のセットを取得します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一時認証情報の取得は、S3 呼び出しの作成に使用できます。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい S3Access ロールを作成し、ポリシーを設定します。
管理 CAPS でユーザーを割り当てます。
radosgw-admin caps add --uid="$USER" --caps="roles=*"
radosgw-admin caps add --uid="$USER" --caps="roles=*"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin caps add --uid="gwadmin" --caps="roles=*"
[user@client]$ radosgw-admin caps add --uid="gwadmin" --caps="roles=*"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3Access ロールを作成します。
radosgw-admin role create --role-name=$ROLE_NAME --path=$PATH --assume-role-policy-doc=$TRUST_POLICY_DOC
radosgw-admin role create --role-name=$ROLE_NAME --path=$PATH --assume-role-policy-doc=$TRUST_POLICY_DOC
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin role create --role-name=S3Access --path=/application_abc/component_xyz/ --assume-role-policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Principal\":\{\"AWS\":\[\"arn:aws:iam:::user/TESTER\"\]\},\"Action\":\[\"sts:AssumeRole\"\]\}\]\}
[user@client]$ radosgw-admin role create --role-name=S3Access --path=/application_abc/component_xyz/ --assume-role-policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Principal\":\{\"AWS\":\[\"arn:aws:iam:::user/TESTER\"\]\},\"Action\":\[\"sts:AssumeRole\"\]\}\]\}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3Access ロールにパーミッションポリシーを割り当てます。
radosgw-admin role-policy put --role-name=$ROLE_NAME --policy-name=$POLICY_NAME --policy-doc=$PERMISSION_POLICY_DOC
radosgw-admin role-policy put --role-name=$ROLE_NAME --policy-name=$POLICY_NAME --policy-doc=$PERMISSION_POLICY_DOC
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin role-policy put --role-name=S3Access --policy-name=Policy --policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Action\":\[\"s3:*\"\],\"Resource\":\"arn:aws:s3:::example_bucket\"\}\]\}
[user@client]$ radosgw-admin role-policy put --role-name=S3Access --policy-name=Policy --policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Action\":\[\"s3:*\"\],\"Resource\":\"arn:aws:s3:::example_bucket\"\}\]\}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
別のユーザーが
gwadmin
ユーザーのロールを想定できるようになりました。たとえば、gwuser
ユーザーは、gwadmin
ユーザーのパーミッションを想定できます。 仮定ユーザーの
access_key
およびsecret_key
の値を書き留めておきます。例
radosgw-admin user info --uid=gwuser | grep -A1 access_key
[user@client]$ radosgw-admin user info --uid=gwuser | grep -A1 access_key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
AssumeRole API 呼び出しを使用し、仮定のユーザーから
access_key
およびsecret_key
の値を提供します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要AssumeRole API には S3Access ロールが必要です。
関連情報
- Boto Python モジュールのインストールに関する詳細は、Red Hat Ceph Storage Object Gateway ガイド の S3 アクセスのテスト セクションを参照してください。
- 詳細は、Red Hat Ceph Storage Object Gateway ガイド の ユーザーの作成 セクションを参照してください。